웹프로그래밍/spring

스프링4.0-WebApplicationContext 계층 : 다수의 DispatcherServlet 설정

Gamcho 2018. 7. 18. 14:14

DispatcherServlet은 그 자체가 서블릿으로 1개 이상 설정 가능하다.

아래 xml 설정에 dispatcher, dispatcher3는 WebApplicationContext를 생성한다.

하지만 2개의 DispatcherServlet은 각자의 설정 파일의 등록된 빈 객체를 공유할 수 없다.


서로 다른 DispatcherServlet이 공통 빈을 필요로 하는 경우, ContextLoaderListener를 사용하여 공통으로 사용할 

빈을 설정한다. ContextLoaderListener가 생성하는 WebApplicationContext는 웹 어플리케이션에서 루트 컨텍스트가 된다.

ContextLoaderListener에서 컨텍스트 파라미터를 명시하지 않으면 /WEB-INF/applicationContext.xml을 설정파일로 사용한다.







<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/mvc-quick-start.xml

</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>


<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>



<servlet>

<servlet-name>dispatcher3</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/sample.xml

</param-value>

</init-param>


<load-on-startup>1</load-on-startup>

</servlet>


<servlet-mapping>

<servlet-name>dispatcher3</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>