通常、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です。