`

Spring:监听器ContextLoaderListener的作用

阅读更多

在Spring项目时报错:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'demoController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.springdemo.service.DemoDeviceService com.springdemo.controller.DemoController.demoDeviceService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.springdemo.service.DemoDeviceService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

 

web.xml中配置了:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

classpath:spring.xml,

classpath:spring-hibernate.xml

</param-value>

</context-param>

Tomcat启动日志: No Spring WebApplicationInitializer types detected on classpath​​

 

但是没有配置:

<listener>

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

</listener>

配置后后正常

Tomcat启动日志: Initializing Spring root WebApplicationContext

 

Spring提供ServletContentListener的一个实现类ContextLoaderListener监听器,该类可以作为Listener使用,在启动Tomcat容器的时候,该类的作用就是自动装载ApplicationContext的配置信息,如果没有设置contextConfigLocation的初始参数则会使用默认参数WEB-INF路径下的application.xml文件。如果需要自定义读取多个配置文件或者修改默认路径,则可以在web.xml中设置:

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>

          classpath:spring.xml,

          classpath:spring-hibernate.xml

    </param-value>

 

</context-param>

 

ContextLoaderListener会读取这些XML文件并产生 WebApplicationContext对象,然后将这个对象放置在ServletContext的属性

里,这样我们只要可以得到Servlet就可 以得到WebApplicationContext对象,并利用这个对象访问spring 容器管理的bean。

初始成功之后显示如下

信息: Initializing Spring root WebApplicationContext

 

分享到:
评论

相关推荐

    Spring的监听器ContextLoaderListener的作用

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

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

    【Spring在Web项目中的应用】 ...同时,通过监听器`ContextLoaderListener`,可以在Web容器启动时自动加载Spring配置,确保在整个Web应用程序生命周期中,Service层和其他Spring管理的bean都可以正确地被创建和管理。

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

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

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

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

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

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

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

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

    DispatcherServlet 和 ContextLoaderListener 区别

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

    STRUTS:listener监听器

    ### STRUTS:Listener监听器详解 #### 一、引言 在Java Web开发中,监听器(Listener)是十分重要的组成部分,它们主要用于监听特定事件的发生,并执行相应的处理逻辑。Struts框架作为早期流行的MVC架构之一,充分...

    Spring-5.1.5源码

    3. **监听器注册**:在web.xml中,我们需要将`ContextLoaderListener`注册为一个Servlet监听器,以便在Web应用启动时调用: ```xml &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener ...

    spring 与 servlet整合

    2. **Spring的Servlet监听器**:如ContextLoaderListener,用于初始化Spring的ApplicationContext,加载配置文件并管理bean。 3. **HandlerMapping**:负责将请求映射到相应的处理器,Spring MVC提供了多种映射策略...

    监听器Listener

    这是一个重要的Spring监听器,负责初始化Spring的Web应用上下文。通过在web.xml中配置,它可以确保在Web应用启动时加载Spring的根应用上下文。 5. **CharacterEncodingFilter**: 虽然不是一个监听器,但通常与...

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

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

    Spring笔记.doc

    监听器如 ContextLoaderListener 在项目启动时加载 Spring 配置文件并保存到 application 对象中,WebApplicationContextUtils 可以从 application 对象中获取 Spring 上下文。 【Spring 与 Hibernate 整合】 ...

    Spring+Struts+ibatis讲解

    2. Spring配置:`ContextLoaderListener`监听器启动时会加载`DefaultContext.xml`,完成Spring的依赖注入。 3. Struts2配置:定义了两个过滤器,`struts-cleanup`用于清理ActionContext,`struts2`是Struts2的核心...

    Spring学习资料

    而ContextLoaderListener则是一个监听器,可以在Web应用启动时加载配置文件,创建ApplicationContext,并将上下文信息存储在ServletContext中,方便全局访问。 在Web应用的部署描述符web.xml中,我们可以通过`...

    Spring源码学习七:web应用自动装配Spring配置文件1

    为此,我们需要在`web.xml`文件中配置`ContextLoaderListener`监听器。 `&lt;listener&gt;` ```xml &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener &lt;param-name&gt;contextConfigLocation ...

    Struts+hibernate+Spring的整合

    - 配置web.xml:添加`ContextLoaderListener`监听器,指定Spring配置文件的位置,以初始化ApplicationContext。 9. **处理中文乱码**:Spring的`CharacterEncodingFilter`可以解决HTTP请求中的字符编码问题,确保...

    spring,struts1.x ,hibernate整合

    1. **在 `web.xml` 中配置监听器**:使用 `ContextLoaderListener` 来初始化 Spring 容器,并指定配置文件的位置。 ```xml &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener ...

    struts加载spring的方法

    2. **配置Spring监听器**:在`web.xml`文件中,需要配置一个Spring的上下文监听器`ContextLoaderListener`,该监听器负责初始化Spring的ApplicationContext。具体配置如下所示: ```xml &lt;listener-class&gt;org....

    spring-web和spring-webmvc_4.2.4

    5. **ContextLoaderListener**:这是Spring Web应用的一个启动监听器,它会创建一个全局的ApplicationContext,用来管理所有Web应用范围内的bean。 接下来,我们关注`springs-webmvc`模块,它是Spring MVC的核心,...

Global site tag (gtag.js) - Google Analytics