ContextLoaderListener在Spring中的作用

8 篇文章 0 订阅
本文介绍了如何使用ContextLoaderListener在启动Web容器时自动装配Spring的applicationContext.xml配置信息。通过在web.xml中配置监听器,可以自定义配置文件的位置及名称。
摘要由CSDN通过智能技术生成

作用:在启动Web容器时,自动装配Spring applicationContext.xml的配置信息。

1. ContextLoaderListener

首先看看这个类在spring中的位置:
org.springframework.web.context.ContextLoaderListener

package org.springframework.web.context;

public class ContextLoaderListener extends Object implements ServletContextListener {
    ...
}

因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。
接下来我们看看ContextLoaderAPI说明:

  1. ContextLoader可以由 ContextLoaderListener和ContextLoaderServlet生成。查看ContextLoaderServlet的API,可以看到它也关联了ContextLoader这个类而且它继承了HttpServlet类.

  2. ContextLoader创建的是 XmlWebApplicationContext这样一个类,它实现的接口是WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext->
    BeanFactory这样一来spring中的所有bean都由这个类来创建.

  3. 部署applicationContext.xml文件,如果在web.xml中不写任何参数配置信息,默认的路径是”/WEB-INF/applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。如果是要自定义文件名可以在web.xml里加入*contextConfigLocation这个context参数:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext.xml</param-value>
</context-param>

<param-value> </param-value>里指定相应的xml文件名,如果有多个xml文件,可以写在一起并一“,”号分隔。如:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:eventContext.xml, classpath*:applicationContext.xml, classpath*:daoContext.xml, classpath*:serviceContext.xml, classpath*:resourceContext.xml,  classpath:*Context.xml
    </param-value>
</context-param>

2. ContextLoaderListener类的使用

web.xml加入:

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

如果applicationContext.xml文件没有在/WEB-INF/下,或文件名不一致,或存在多个Spring配置文件,在web.xml文件中根据下面代码修改:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:eventContext.xml, classpath*:applicationContext.xml, classpath*:daoContext.xml, classpath*:serviceContext.xml, classpath*:resourceContext.xml,  classpath:*Context.xml
    </param-value>
</context-param>

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值