`

ContextLoaderListener监听器有什麽用?

阅读更多

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

ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。至于ApplicationContext.xml这个配置文件部署在哪,如何配置多个xml文件,书上都没怎么详细说明。现在的方法就是查看它的API文档。在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成。看看它的API说明

第一段说明ContextLoader可以由 ContextLoaderListener和ContextLoaderServlet生成。如果查看ContextLoaderServlet的API,可以看到它也关联了ContextLoader这个类而且它实现了HttpServlet。这个接口

第二段,ContextLoader创建的是 XmlWebApplicationContext这样一个类,它实现的接口是WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext->

BeanFactory这样一来spring中的所有bean都由这个类来创建

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

view plaincopy to clipboardprint?
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext-*.xml
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext-*.xml
</param-value>
</context-param>

在<param-value> </param-value>里指定相应的xml文件名,如果有多个xml文件,可以写在一起并一“,”号分隔。上面的applicationContext-*.xml采用通配符,比如这那个目录下有applicationContext-ibatis-base.xml,applicationContext-action.xml,applicationContext-ibatis-dao.xml等文件,都会一同被载入。

由此可见applicationContext.xml的文件位置就可以有两种默认实现:

第一种:直接将之放到/WEB-INF下,之在web.xml中声明一个listener

第二种:将之放到classpath下,但是此时要在web.xml中加入<context-param>,用它来指明你的applicationContext.xml的位置以供web容器来加载。按照Struts2 整合spring的官方给出的档案,写成:

view plaincopy to clipboardprint?
<!-- Context Configuration locations for Spring XML files -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param> 

分享到:
评论

相关推荐

    Spring的监听器ContextLoaderListener的作用

    Spring 的监听器 ContextLoaderListener 的作用 ContextLoaderListener 是 Spring 框架中的一种监听器,它的主要作用是启动 Web 容器时,自动装配 ApplicationContext 的配置信息。它实现了 ServletContextListener...

    web.xml中ContextLoaderListener的运行过程解析

    `ContextLoaderListener`是Spring框架中的一个监听器,它负责初始化Spring应用上下文。下面将详细解析`web.xml`中`ContextLoaderListener`的运行过程。 ### 1. `web.xml`的作用 `web.xml`文件主要用来定义Servlet、...

    Web项目中使用Spring, 使用 Spring 的器监听器 ContextLoaderListener.docx

    **使用Spring的ContextLoaderListener监听器** 1. **Maven依赖**: 确保`pom.xml`中包含Spring的核心库,例如`spring-context`,以及其他必要的依赖,如Spring的Web支持、MyBatis库等。示例依赖如下: ```xml ...

    ssh整合时遇到常见错误 ContextLoaderListener not found 解决

    这个错误通常出现在尝试启动基于Spring MVC的Web应用程序时,因为它无法找到用于初始化Spring应用上下文的监听器。 `ContextLoaderListener`是Spring框架的一部分,它负责在Web应用启动时加载并管理Spring的应用上...

    DispatcherServlet 和 ContextLoaderListener 区别

    ContextLoaderListener则是Spring容器的启动监听器,它负责初始化Spring应用上下文(ApplicationContext)。当Web应用启动时,ContextLoaderListener会读取Web-INF下的applicationContext.xml配置文件,创建并加载...

    java解决org.springframework.web.context.ContextLoaderListener

    这个监听器是基于Servlet容器(如Tomcat、Jetty等)的,当Web应用启动时,它会读取配置文件(通常是`web.xml`),创建并加载ApplicationContext。如果在这个过程中遇到问题,比如`ClassNotFoundException`,那通常...

    监听器Listener

    在Java世界中,"监听器Listener"是一种广泛使用的机制,主要应用于事件驱动编程。它允许程序注册对特定事件的兴趣,并在这些事件发生时接收通知。监听器是接口,实现这些接口的类通常需要被添加到特定组件(如...

    STRUTS:listener监听器

    接下来,我们通过一个具体的例子来展示如何使用监听器来监控用户的上线与退出。 ##### 3.1 登录页面:Login.jsp ```jsp ;charset=gb2312"%&gt; session = request.getSession(false); if (session != null) { ...

    过滤器和监听器收集.pdf

    过滤器和监听器的执行顺序是由web.xml文件中的元素或者使用注解的顺序来控制的。过滤器可以在web.xml中配置多个Dispatcher类型,包括REQUEST, FORWARD, INCLUDE, ERROR和ASYNC。这意味着过滤器可以针对不同类型请求...

    精品专题(2021-2022年收藏)spring项目中监听器作用.doc

    本文将深入探讨Spring框架中的监听器,特别是`ContextLoaderListener`的作用及其配置。 `ContextLoaderListener`是Spring框架提供的一个核心监听器,主要用于初始化和销毁Spring的WebApplicationContext。它是...

    监听器获取Spring配置文件的方法

    这种方式虽然简单,但存在一个问题:当Spring的`ContextLoaderListener`已经加载了配置文件后,我们的监听器再次加载会导致bean被实例化两次,增加了不必要的资源消耗。 2. **从ServletContext中获取** 既然...

    Spring与Web环境集成.pdf

    因此,我们只需要在web.xml中配置ContextLoaderListener监听器,并使用WebApplicationContextUtils获得应用上下文对象ApplicationContext。 3. 导入Spring集成web的坐标 为了使用Spring框架在Web应用程序中,我们...

    Spring在容器在启动的时候发生了什么

    `&lt;context-param&gt;`中的`webAppRootKey`定义了Web应用程序的根目录键,而`&lt;listener&gt;`标签注册了两个监听器:`ContextLoaderListener`和`IntrospectorCleanupListener`。 `ContextLoaderListener`是Spring提供的一种...

    44 Spring控制器Controller如何设置AOP?慕课专栏1

    6. **调整启动顺序**:确保`DispatcherServlet`的初始化优先于其他监听器,这样它的WebApplicationContext可以覆盖全局ApplicationContext的某些配置,包括AOP配置。 理解Spring MVC的启动过程和ApplicationContext...

    spring和struts整合的三种方案

    2. **使用 ContextLoaderListener 监听器** 另一种启动 Spring 容器的方法是在 `web.xml` 中配置 `ContextLoaderListener` 监听器。这个监听器会在 Web 应用启动时加载 `contextConfigLocation` 指定的上下文配置...

    Spring与Web环境集成1

    4. **配置ContextLoaderListener监听器**: 在`web.xml`配置文件中,我们需要声明`ContextLoaderListener`监听器,并指定Spring配置文件的位置。例如: ```xml &lt;!-- 全局参数 --&gt; &lt;param-name&gt;...

    web容器中实例化spring相关配置解析

    首先,需要在web.xml文件中配置ContextLoaderListener监听器,该监听器负责实例化Spring容器。 ContextLoaderListener监听器会扫描classpath下的applicationContext.xml文件,并将其加载到Spring容器中。下面是一个...

    数据库知识

    除了上述的监听器,Spring框架也提供了一些监听器,如`ContextLoaderListener`。它会在Web容器启动时自动加载Spring的ApplicationContext配置,使得应用能够初始化和管理Spring Bean。配置方法是在`web.xml`中声明`...

    SSH2框架搭建....

    6. **Web.xml配置**:Web应用的部署描述符web.xml中,需要配置Spring的ContextLoaderListener监听器加载Spring上下文,以及Struts2的FilterDispatcher过滤器来处理请求。同时,还可以配置过滤器、servlet等其他元素...

Global site tag (gtag.js) - Google Analytics