4

SpringMVC (3.0.1) スタック上に構築された既存の GUI Web アプリケーションについて、RESTful API を公開したいと考えています。妥当な選択肢は何だと思いますか?

  1. Jersey のような別のフレームワークと統合しますか (ゼロからやり直すようです)?
  2. 組み込みの JAXB / Jackson の SpringMVC 統合を使用しますか?
  3. 同じに別のサーブレットマッピング/api/*を追加するだけDispatchServletですか?
  4. すべてのビューは jsp でコーディングされています。XML API に jsp テンプレートを使用する必要がありますか?
  5. 共通の依存関係を持つ別の新しい webapp を構築しますか?
  6. 他に何か?

以下は私のweb.xmlです:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">

    <welcome-file-list>
        <welcome-file>home.html</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>spring-mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>/web/*</url-pattern>
    </servlet-mapping>

</web-app>

そして私の春のコンテキスト記述子:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:security="http://www.springframework.org/schema/security" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
            http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/security 
            http://www.springframework.org/schema/security/spring-security-3.0.xsd
            http://www.springframework.org/schema/mvc 
            http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>

    <context:component-scan base-package="net.mycrub.poc.controllers" />

    <bean id="viewResolver" 
        class="org.springframework.web.servlet.view.InternalResourceViewResolver" 
        p:prefix="/WEB-INF/jsp/views/" 
        p:suffix=".jsp"
        p:viewClass="org.springframework.web.servlet.view.JstlView" />

</beans>

前もって感謝します ; マッピングの例は大歓迎です:-)

4

3 に答える 3

3

あなたの質問のいくつかを突き刺します...

統合/分離: REST アプリケーションを Web GUI とは別に構築することをお勧めします。人々が API を構築する大きな理由は、API を複数のアプリケーションに公開するためです。そのため、私は WEB GUI を API とあまり密接に結び付けません。この考えは、関心の分離の概念全体に沿っています。たとえば、後で同じ API にアクセスするモバイル アプリを構築する場合、展開のために WEB GUI を停止する必要がある場合でも影響を受けません。

ジャクソン/ JAXB : ジャクソンを強くお勧めします。私の意見では、パフォーマンスと機能の最適な組み合わせを備えています。

Spring MVC/Jersey : いくつかの理由から、Spring に固執することをお勧めします。

1.) 学習曲線が少なくなります。Spring に慣れている場合は、Spring を使い続けることに何の問題もありません。

2.) 今日のジャージーの依​​存性注入は多かれ少なかれ壊れています (http://java.net/jira/browse/JERSEY-517)。したがって、私のように Spring でこれがうまく機能することに慣れている場合は、Jersey に切り替えるのは苦痛です。これは 2.0 リリースで対処されるはずですが、まだ確定していません。

于 2012-10-26T15:36:34.127 に答える
1

それはいくつかの要因に依存します。私が最初に尋ねる質問は、パフォーマンスに関するものです。Webアプリが1つしかない場合は、GUIユーザーまたはWSユーザーのいずれかがサーバーに過負荷をかける可能性があります。したがって、おそらくより良い解決策は、3つの異なるアーティファクトを持つことです。

GUI WebAppWSWebAppビジネス共通アーティファクト

また、必要に応じて各Webアプリをエスカレーションできます。

それが役に立てば幸い。

于 2012-10-26T18:01:16.923 に答える