: O. Yuanying

WebApplicationContextの使い分け

SpringMVCのメモ。

  1. Webアプリケーション全体で使うBean定義ファイルは、ContextLoaderListener(or ContextLoaderServlet)から呼び出す。
  2. サーブレット固有のBean定義ファイルは、DispatcherServletのパラメータとして渡す。

Webアプリ全体で使うBean定義ファイルを読み込んだApplicationContextは、WebApplicationContextUtils#getWebApplicationContext(ServletContext sc)で取得できる。

web.xml設定例。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <display-name>SNPS Web Application</display-name>
  
  <!-- ContextLoaderListenerで読み込まれるBean定義ファイル。-->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>

  <listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <!-- DispathcerServletはデフォルトで「Servlet名-servlet.xml」を読み込む。-->
  <!-- この場合は「snps-servlet.xml」。-->
  <servlet>
	<servlet-name>snps</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<load-on-startup>1</load-on-startup>
  </servlet>

  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>snps</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>


  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
	
</web-app>