2012-06-13 4 views
14

나는 에 새로운 봄 MVC입니다. 웹 응용 프로그램이 있습니다.Spring MVC에서 web.xml에 ContextLoaderListener 추가하기

<welcome-file-list> 
    <welcome-file>list.html</welcome-file> 
</welcome-file-list> 
<servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 


내가 의 web.xml 파일에 다음 줄을 추가해야합니까 : 나는 다음과 같은 구성을 가지고?

<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 
+2

작동 여부와 상관없이 작동합니까? ':)'시도 만하면된다. – sp00m

답변

21

예 당신은 당신이 다른 Spring 컨텍스트 XML 파일뿐만 아니라 동안 응용 프로그램 로드를로드 할 에만 경우, web.xmlContextLoaderListener를 추가 할 필요가 당신은

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/spring-security.xml 
    </param-value> 
</context-param> 
13

로 지정할 수 있습니다 두 개의 config xml 파일이있는 경우에만. 하나는 서비스/DAO가 있고 다른 하나는 컨트롤러가 있습니다. 하나의 스프링 구성 파일에 모든 내용을 구성한 경우 ContextLoaderListener이 필요하지 않은 경우 디스패처 서블릿 만 있으면 충분합니다.

구성을 두 개로 분할하고 ContextLoaderListener을 사용하여 루트 응용 프로그램 컨텍스트 및 디스패처 서블릿을 만들어 웹 레이어 응용 프로그램 컨텍스트를 만드는 것이 좋습니다.

3
<servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class> 
      org.springframework.web.servlet.DispatcherServlet 
     </servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>classpath:applicationContext.xml,WEB-INF/spring-security.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>UR_PATTERN</url-pattern> 
    </servlet-mapping> 

이렇게하면 정상적으로 작동합니다.

4

스프링 MVC (DispatcherServlet)에 대해서만 필요하지는 않습니다. 당신의 web.xml에

<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/admin</url-pattern> 
</filter-mapping> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>  
    /WEB-INF/spring-security.xml 
    </param-value> 
</context-param> 

을뿐만 아니라 : 당신이 DelegatingFilterProxy을 추가해야합니다 ContextLoaderListener를 사용하는 경우하지만 당신의 스프링 MVC에 추가 봄 보안,

<listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

그냥 한 발언으로 수행해야합니다. 너무 늦게 4 년 동안 유감스럽게 생각합니다. 건배

관련 문제