2012-06-13 43 views
14

我是的新手Spring MVC。我有一個Web應用程序。我有以下配置:在Spring MVC中將ContextLoaderListener添加到web.xml中

<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

是的,你需要添加ContextLoaderListenerweb.xml, 只有如果要加載其他Spring上下文的XML文件,以及在加載應用程序 ,你可以指定它們作爲

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

只有當你有兩個配置XML文件。一個與服務/ DAO和另一個與控制器。如果你在一個spring配置文件中配置了所有的東西,你不需要ContextLoaderListener,只需要調度器servlet就足夠了。

建議將配置拆分爲兩部分,並使用ContextLoaderListener創建根應用程序上下文,並使用調度程序servlet創建Web層應用程序上下文。

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

這是可選的,你不需要它只是爲了Spring MVC(DispatcherServlet會這樣做)。但是,增加春季安全到您的Spring MVC必須

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

只是一個句話來完成,如果使用ContextLoaderListener你必須添加DelegatingFilterProxy

<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> 
在web.xml

爲好。對不起,爲時已晚了四年。歡呼聲

相關問題