ContextLoaderListener的作用是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。
1、在web.xml配置监听器ContextLoaderListener
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2、如果在web.xml中,要配置自定义位置的applicationContex.xml,则需添加以下配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
这样配置的时候,applicationContext.xml的位置,应该在resource文件夹下面
3、如果不添加如上配置,则ContextLoaderListener会读取applicationContext.xml的默认路径: /WEB-INF/applicationContext.xml, 而且名字必须一样
4、在项目中,我们的配置文件可能不止一个,因此都采用第2种配置方式,如果有多个,中间可以用逗号隔开,完整的代码如下
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml,application-XXX.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
附上解惑过程中有帮助的博客:
http://www.cnblogs.com/hello-yao-ge/p/5891435.html
http://m.blog.csdn.net/zhangliao613/article/details/6289114