0

私が見てきたことから、多くの人々は「ビジネスロジック」を別のモジュールプロジェクトに入れることを好みます。これはSpring3アプリケーションでどのように行われますか?

私が見たところ、コントローラーとサービスはかなり春特有のものです。それがポイントですか?Springを選択した場合、「ロジック」を分離して、サービスを直接作成するだけでは意味がありません(Spring WebフローやDaoなどと相互作用します)。

後で、同じくSpringを介してRESTfulWebサービスを使用してAPIを作成します。これはすべて1つのアプリケーションで実行できますか、または前述したように、ロジックを分割する方法はありますか?

たとえば、-ログイン-すべてが春のセキュリティと春のWebフローを介して処理され、....あなたはそれを推測しました....春。それをモジュール化するのは難しいようです。

しかし、顧客情報を指定してPDFを生成するサービスがあるとしましょう....それは私が分離する必要があるものでしょうか?

ありがとう!

4

1 に答える 1

1

通常、Spring のDispatcherServletは REST サービスを担当します。Web アプリケーション コンテキストには、コントローラー、ビュー リゾルバー、ハンドラー マッピングなどが含まれます。

Web の一部ではないアプリケーション ロジック (サービス、リポジトリ、データソースなど) は、通常、1 つ (または複数)のルート アプリケーション コンテキストに配置されます。をweb.xmlファイルに登録し、それに応じて を構成するContextLoaderListenerことで、アプリケーションにインポートされます。Spring セキュリティを使用する場合、セキュリティ アプリケーション コンテキストがここに追加されます。contextConfigLocation

例:

<web-app ...>
    <!-- Enables Spring root application context-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- One (or more) root application contexts -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/rootApplicationContext.xml</param-value>
    </context-param>

    <!-- Servlet declaration. Each servlet has is its own web application context -->
    <servlet>
        <servlet-name>example</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>example</servlet-name>
        <url-pattern>/example/*</url-pattern>
    </servlet-mapping>
</web-app>

この設定により、Web アプリケーション コンテキストは、ルート アプリケーション コンテキストで宣言された任意の Bean を継承できます。

慣例により、特定のサーブレットに使用される Web アプリケーション コンテキストは/WEB-INF/[servlet-name]-servlet.xmlにあることに注意してください。つまり、上記の例では/WEB-INF/example-servlet.xmlです。

于 2012-06-30T08:43:25.507 に答える