2013년 10월 22일 화요일

DispatcherServlet, ContextLoaderListener, web.xml 설정 Spring MVC에서 Front Controller 역할 수행 DispatcherServlet

DispatcherServlet, ContextLoaderListener, web.xml 설정

 Spring MVC에서 Front Controller 역할 수행
 DispatcherServlet이 로드되면 서블릿의 이름과 연관된 XML 파일로 부터ApplicationContext를 로딩 한다. (서블릿이름-servlet.xml)
 그런다음 servlet-mapping을 통해 다루어질 URL을 지정 (다음페이지)
 
[web.xml]
<servlet>
<servlet-name>onj</servlet-name>
<servlet-class>
 org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
    <param-name>contextConfigLocation</param-name>
<param-value>
   <!–- 여기에 스프링 관련 설정 파일(xml)을 둔다. 
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>onj</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
 

[contextConfigLocation 예]
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-config/sfa/ss-action.xml,
/WEB-INF/spring-config/sfa/login-action.xml,
/WEB-INF/spring-config/sfa/main-action.xml,
/WEB-INF/spring-config/sfa/cm-action.xml,
/WEB-INF/spring-config/sfa/core-action.xml,
/WEB-INF/spring-config/sfa/external-action.xml
</param-value>

 DispatcherServlet 설정파일에는 스프링 MVC 컴포넌트와 관련된 <bean>정의를 포함
 서비스 계층(onj-service.xml)과 데이터 계층(onj-data.xml)에 속하는 빈 역시  DispatcherServlet의 설정파일에 포함할 수 있지만 별도의 설정파일을 두는 것이 좋음.
 설정파일들이 모두 로드 되도록 하기 위해 컨텍스트 로더를 설정
 컨텍스트 로더는 DispatcherServlet이 로드하는 것 이외의 컨텍스트 설정파일을 로드
 ContextLoaderListener를 web.xml에 설정
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

설정파일의 위치를 알려주지 않으면 /WEB-INF/applicationContext.xml이라는 스프링 설정 파일을 찾는다. 서블릿 컨텍스트에 contextConfigLocation이라는 파라미터를 설정하면, 컨텍스트 로더가 로드할 수 있는 하나 이상의 스프링 설정 파일을 지정할 수 있다.



댓글 없음:

댓글 쓰기