Spring MVC启动过程(1):ContextLoaderListener初始化
2014-12-04 15:19
597 查看
Spring MVC启动过程
以Tomcat为例,想在Web容器中使用Spirng MVC,必须进行四项的配置:修改web.xml,添加servlet定义、编写servletname-servlet.xml( servletname是在web.xm中配置DispactherServlet时使servlet-name的值)
、配置contextConfigLocation初始化参数、配置ContextLoaderListerner。
?
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 MVC启动过程(1):ContextLoaderListener初始化
- Spring MVC启动过程(1):ContextLoaderListener初始化
- Spring MVC启动过程(1):ContextLoaderListener初始化
- Spring MVC启动过程之ContextLoaderListener初始化
- SpringWeb ContextLoaderListener 初始化过程
- Spring Framework源码读取-ContextLoaderListener启动过程
- maven工程在eclipse中使用tomcat启动时找不到ContextLoaderListener的原因
- ContextLoaderListener初始化的上下文和DispatcherServlet初始化的上下文关系
- maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- tomcat启动时:ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 启动tomcat出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- jetty启动项目报无法找到org.springframework.web.context.ContextLoaderListener
- contextLoaderListener和dispatcherServlet初始化上下文的区别
- tomcat启动报错:java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
- maven 工程启动找不到 Spring ContextLoaderListener 的解决办法
- spring有三种启动方式,使用ContextLoaderServlet,ContextLoaderListener和ContextLoaderPlugIn.
- maven 工程启动找不到 Spring ContextLoaderListener 的解决办法
- spring项目中监听器作用-ContextLoaderListener(项目启动时,加载一些东西到缓存中)
- maven 工程启动找不到 Spring ContextLoaderListener 的解决办法