Spring中的ContextLoaderListener使用

转载 2015年11月19日 17:09:26
以Tomcat为例,想在Web容器中使用Spirng MVC,必须进行四项的配置:
修改web.xml,添加servlet定义、编写servletname-servlet.xml( servletname是在web.xm中配置DispactherServlet时使servlet-name的值) 配置contextConfigLocation初始化参数、配置ContextLoaderListerner。
<!-- servlet定义 -->
<servlet>
    <servlet-name>court</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
     
<servlet-mapping>
    <servlet-name>court</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
 
<!-- 配置contextConfigLocation初始化参数 -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/court-service.xml</param-value>
</context-param>
 
<!-- 配置ContextLoaderListerner -->
<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

DispatcherServlet:前端处理器,接受的HTTP请求和转发请求的类。

court-servlet.xml:定义WebAppliactionContext上下文中的bean。

contextConfigLocation:指定Spring IoC容器需要读取的定义了非web层的Bean(DAO/Service)的XML文件路径。

ContextLoaderListener:Spring MVC在Web容器中的启动类,负责Spring IoC容器在Web上下文中的初始化。

Spring MVC启动过程大致分为两个过程:1、ContextLoaderListener初始化,实例化IoC容器,并将此容器实例注册到ServletContext中。2、DispatcherServlet初始化

ContextLoaderListener初始化

Web容器调用contextInitialized方法初始化ContextLoaderListener,在此方法中,ContextLoaderListener通过调用继承自ContextLoader的initWebApplicationContext方法实例化Spring Ioc容器。
initWebApplicationContext方法进行的操作如图1:

以上在实例化Spring IoC容器的过程中,最主要的两个方法是createWebApplicationContext和configureAndRefreshWebApplicationContext方法。

createWebApplicationContext方法用于返回XmlWebApplicationContext实例,即Web环境下的Spring IoC容器。

configureAndRefreshWebApplicationContext用于配置XmlWebApplicationContext,读取web.xml中通过contextConfigLocation标签指定的XML文件,实例化XML文件中配置的bean,并在上一步中实例化的容器中进行注册。

完成以上两步的操作后,Spring MVC会将XmlWebApplicationContext实例以属性的方式注册到ServletContext中,属性的名称由WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE指定,默认值为:WebApplicationContext.class.getName() + ".ROOT"。此Spring 容器是ROOT上下文,供所有的Spring MVC Servlcet使用。





spring-boot项目 war包发布

1.配置springboot主类(带有@SpringBootApplication)继承SpringBootServletInitializer,同时重写configure方法 @SpringBoot...
  • R28_11
  • R28_11
  • 2016年03月04日 14:32
  • 1560

Eclipse报错中用Spring mvc初始化ContextLoaderListener报错

Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderListener 一开始我的项目都是完全可以运行的,但后来提交到github...
  • u012457196
  • u012457196
  • 2015年02月04日 17:38
  • 1029

ContextLoaderListener和Spring MVC中的DispatcherServlet加载内容的区别

ContextLoaderListener和DispatcherServlet都会在Web容器启动的时候加载一下bean配置. 区别在于: DispatcherServlet一般会加载MVC相关的...
  • py_xin
  • py_xin
  • 2016年07月28日 11:02
  • 2433

Spring MVC启动过程之ContextLoaderListener初始化

以Tomcat为例,想在Web容器中使用Spirng MVC,必须进行四项的配置: 修改web.xml,添加servlet定义、编写servletname-servlet.xml( servle...
  • hhcccchh
  • hhcccchh
  • 2014年05月04日 10:20
  • 1452

spring监听器ContextLoaderListener的疑问

今天新搭了项目,采用Spting和mybatis,MVC用的是Spring MVC ,配置文件采用的是之前的项目的。 在运行后访问项目时候报错了: java.lang.IllegalStateExce...
  • u011956329
  • u011956329
  • 2015年08月31日 15:35
  • 1550

springmvc ContextLoaderListener作用

主要工作就是实例化一个webapplicationcontext 并且放入servletcontext中。 ContextLoaderListener 一个servlet监听器,继承了Context...
  • u011686226
  • u011686226
  • 2016年10月08日 16:27
  • 428

Spring加载方式ContextLoaderListener和ContextLoaderPlugIn

spring的2种加载方式:ContextLoaderListener和ContextLoaderPlugIn  今天有一个朋友问了我一个问题,他使用的是Hibernate/Spring/St...
  • duck_arrow
  • duck_arrow
  • 2015年01月22日 14:57
  • 894

菜鸟之路——Spring MVC(十一)ContextLoaderListener加载配置文件

ContextLoaderListener的作用:在启动Web容器时,自动装配Spring applicationContext.xml的配置信息。 因为它实现了ServletContextList...
  • sjjsh2
  • sjjsh2
  • 2016年11月09日 15:22
  • 1949

web.xml文件中配置spring的ContextLoaderListener后报错

今天在做webapp   demo的时候发现将spring的ContextLoaderListener配置到web.xml 时,无故报错,鼠标移到红叉上,看错误信息说的webapp标签下只能包含xxx...
  • u010111268
  • u010111268
  • 2016年03月18日 23:50
  • 278

Spring中DispatcherServlet和ContextLoaderListener的区别

#### 在Spring中DispatcherServlet和ContextLoaderListener的区别是什么? 1.[Stackoverflow的问题1](http://stac...
  • kang389110772
  • kang389110772
  • 2016年02月28日 10:21
  • 1280
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring中的ContextLoaderListener使用
举报原因:
原因补充:

(最多只允许输入30个字)