原文地址:http://lei2006.blog.sohu.com/116206469.html
1 Spring之ContextLoaderListener的作用
使用spring除了添加必要的jar包,另外在web.xml一定要加上启动spring的监听器,这样配置在xml文件中的bean才会初始化
如你在web.xml这样作了配置:(web.xml 2.4)
- <listener>
- <listener-class>
- org.springframework.web.context.ContextLoaderListener
- </listener-class>
- </listener>
它会默认查找位于:WEB-INF/下的是否有一个文件名称为:applicationContext.xml
如果没有就会报错:
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:509)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:427)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:294)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:215)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4521)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5004)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:4999)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:117)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
... 20 more
但在很多项目中可能会把配置文件集中管理,常见位置在:classpath下面,这样的话,你要在web.xml中在配置另外一个节点名称:
- <context-param>
- <param-name>
- contextConfigLocation
- </param-name>
- <param-value>
- classpath*:applicationContext.xml
- </param-value>
- </context-param>
相关推荐
在Java Web开发中,`org.springframework.web.context.ContextLoaderListener` 是Spring框架的一部分,它负责初始化一个Web应用程序的Spring上下文。这个监听器是基于Servlet容器(如Tomcat、Jetty等)的,当Web应用...
org.springframework.web.context.ContextLoaderListener.class org.springframework.web.context.ContextLoaderServlet.class org.springframework.web.context.ServletConfigAware.class org.springframework.web....
Spring 的监听器 ContextLoaderListener 的作用 ContextLoaderListener 是 Spring 框架中的一种监听器,它的主要作用是启动 Web 容器时,自动装配 ApplicationContext 的配置信息。它实现了 ServletContextListener...
org.springframework.web.context.ContextLoaderListener <param-name>contextConfigLocation <param-value>classpath:config/applicationContext.xml ``` 四、spring-servlet.xml 配置 spring-servlet....
09. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 10. </listener> 11. 12. <servlet> 13. <servlet-name>spring</servlet-name> 14. <servlet-class>org.spring...
【Spring在Web项目中的应用】 ...同时,通过监听器`ContextLoaderListener`,可以在Web容器启动时自动加载Spring配置,确保在整个Web应用程序生命周期中,Service层和其他Spring管理的bean都可以正确地被创建和管理。
5. **部署描述符**:在web.xml中,需要配置DispatcherServlet、Filter(如Spring的ContextLoaderListener和DelegatingFilterProxy)来启动Spring应用上下文,并将请求转发给WebWork。 6. **测试与调试**:配置完成...
- **web.xml**:Web应用的部署描述符,配置Spring MVC的DispatcherServlet和ContextLoaderListener。 - **spring-servlet.xml**:Spring MVC的核心配置文件,定义了Bean的配置,如Controller、HandlerMapping、...
<listener-class>org.springframework.web.context.ContextLoaderListener ``` 然后,为了使Flex与Spring进行通信,我们需要创建一个工厂类,例如`SpringFactory`,实现Flex的`FactoryInstance`和`FlexFactory`...
<listener-class>org.springframework.web.context.ContextLoaderListener <!-- Spring MVC 配置 --> <servlet-name>spring <servlet-class>org.springframework.web.servlet.DispatcherServlet ...
<listener-class>org.springframework.web.context.ContextLoaderListener <servlet-name>CXFServlet <servlet-class>org.apache.cxf.transport.servlet.CXFServlet ... ``` 在上面的代码中,我们定义了...
<listener-class>org.springframework.web.context.ContextLoaderListener ``` `ContextLoaderListener`监听Web应用程序的启动和结束,它在服务器启动时加载`contextConfigLocation`指定的配置文件,并创建...
2. **listener**:`ContextLoaderListener` 是一个监听器,负责加载应用上下文,解析上面提到的配置文件,并初始化Spring容器。 3. **filter**:`CharacterEncodingFilter` 过滤器确保所有的HTTP请求都以指定的编码...
ContextLoaderListener ContextLoaderPlugIn ContextLoaderServlet ContextRefreshedEvent ContextSingletonBeanFactoryLocator ControlFlow ControlFlowFactory ControlFlowFactory.Jdk13ControlFlow ...
<listener-class>org.springframework.web.context.ContextLoaderListener ``` 6. **创建Spring核心配置文件** - 在`WEB-INF`目录下创建Spring的核心配置文件`applicationContext.xml`。 - 在该文件中定义...
本文将深入探讨Spring框架中的监听器,特别是`ContextLoaderListener`的作用及其配置。 `ContextLoaderListener`是Spring框架提供的一个核心监听器,主要用于初始化和销毁Spring的WebApplicationContext。它是...
在web应用启动时,可以通过在web.xml中配置监听器`ContextLoaderListener`或者`ContextLoaderPlugIn`来初始化Spring的IOC容器。 - **初始化Spring容器**: - 第一种方法是在web.xml中配置`ContextLoaderListener`...
在web.xml中,我们定义了一个Spring的ContextLoaderListener,它会在应用启动时加载ApplicationContext.xml配置文件。同时,还配置了JSF的FacesServlet,用于处理JSF的请求。`load-on-startup`设置为0,意味着该...
接着,配置项目的Spring支持,这通常涉及在Web.xml中声明Spring的DispatcherServlet和ContextLoaderListener。 4. **Spring Bean的配置** Spring通过XML配置文件来定义和管理Bean。在创建的项目中,我们需要创建一...
通常推荐使用`ContextLoaderListener`,因为它更早地初始化ApplicationContext,使得Spring可以更早地参与到应用的生命周期中。 `ContextLoaderListener`的`contextInitialized`方法会调用`createContextLoader()`...