在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 的作用 ContextLoaderListener 是 Spring 框架中的一种监听器,它的主要作用是启动 Web 容器时,自动装配 ApplicationContext 的配置信息。它实现了 ServletContextListener...
【Spring在Web项目中的应用】 ...同时,通过监听器`ContextLoaderListener`,可以在Web容器启动时自动加载Spring配置,确保在整个Web应用程序生命周期中,Service层和其他Spring管理的bean都可以正确地被创建和管理。
这个错误通常出现在尝试启动基于Spring MVC的Web应用程序时,因为它无法找到用于初始化Spring应用上下文的监听器。 `ContextLoaderListener`是Spring框架的一部分,它负责在Web应用启动时加载并管理Spring的应用上...
这个监听器是基于Servlet容器(如Tomcat、Jetty等)的,当Web应用启动时,它会读取配置文件(通常是`web.xml`),创建并加载ApplicationContext。如果在这个过程中遇到问题,比如`ClassNotFoundException`,那通常...
本文将深入探讨Spring框架中的监听器,特别是`ContextLoaderListener`的作用及其配置。 `ContextLoaderListener`是Spring框架提供的一个核心监听器,主要用于初始化和销毁Spring的WebApplicationContext。它是...
`ContextLoaderListener`是Spring框架中的一个监听器,它负责初始化Spring应用上下文。下面将详细解析`web.xml`中`ContextLoaderListener`的运行过程。 ### 1. `web.xml`的作用 `web.xml`文件主要用来定义Servlet、...
ContextLoaderListener则是Spring容器的启动监听器,它负责初始化Spring应用上下文(ApplicationContext)。当Web应用启动时,ContextLoaderListener会读取Web-INF下的applicationContext.xml配置文件,创建并加载...
### STRUTS:Listener监听器详解 #### 一、引言 在Java Web开发中,监听器(Listener)是十分重要的组成部分,它们主要用于监听特定事件的发生,并执行相应的处理逻辑。Struts框架作为早期流行的MVC架构之一,充分...
3. **监听器注册**:在web.xml中,我们需要将`ContextLoaderListener`注册为一个Servlet监听器,以便在Web应用启动时调用: ```xml <listener-class>org.springframework.web.context.ContextLoaderListener ...
2. **Spring的Servlet监听器**:如ContextLoaderListener,用于初始化Spring的ApplicationContext,加载配置文件并管理bean。 3. **HandlerMapping**:负责将请求映射到相应的处理器,Spring MVC提供了多种映射策略...
这是一个重要的Spring监听器,负责初始化Spring的Web应用上下文。通过在web.xml中配置,它可以确保在Web应用启动时加载Spring的根应用上下文。 5. **CharacterEncodingFilter**: 虽然不是一个监听器,但通常与...
这种方式虽然简单,但存在一个问题:当Spring的`ContextLoaderListener`已经加载了配置文件后,我们的监听器再次加载会导致bean被实例化两次,增加了不必要的资源消耗。 2. **从ServletContext中获取** 既然...
监听器如 ContextLoaderListener 在项目启动时加载 Spring 配置文件并保存到 application 对象中,WebApplicationContextUtils 可以从 application 对象中获取 Spring 上下文。 【Spring 与 Hibernate 整合】 ...
2. Spring配置:`ContextLoaderListener`监听器启动时会加载`DefaultContext.xml`,完成Spring的依赖注入。 3. Struts2配置:定义了两个过滤器,`struts-cleanup`用于清理ActionContext,`struts2`是Struts2的核心...
而ContextLoaderListener则是一个监听器,可以在Web应用启动时加载配置文件,创建ApplicationContext,并将上下文信息存储在ServletContext中,方便全局访问。 在Web应用的部署描述符web.xml中,我们可以通过`...
为此,我们需要在`web.xml`文件中配置`ContextLoaderListener`监听器。 `<listener>` ```xml <listener-class>org.springframework.web.context.ContextLoaderListener <param-name>contextConfigLocation ...
- 配置web.xml:添加`ContextLoaderListener`监听器,指定Spring配置文件的位置,以初始化ApplicationContext。 9. **处理中文乱码**:Spring的`CharacterEncodingFilter`可以解决HTTP请求中的字符编码问题,确保...
1. **在 `web.xml` 中配置监听器**:使用 `ContextLoaderListener` 来初始化 Spring 容器,并指定配置文件的位置。 ```xml <listener-class>org.springframework.web.context.ContextLoaderListener ...
2. **配置Spring监听器**:在`web.xml`文件中,需要配置一个Spring的上下文监听器`ContextLoaderListener`,该监听器负责初始化Spring的ApplicationContext。具体配置如下所示: ```xml <listener-class>org....
6. **Spring Web**:提供了创建基于Web的应用程序的支持,包括Servlet监听器和ContextLoaderListener。 7. **Spring MVC**:提供了构建Web应用的模型-视图-控制器架构的支持。 #### Spring的IoC(Inversion of ...