spring mvc 跟上下文以及子上下文的初始化过程

最近对spring兴趣高涨,刚好,一个SSI框架的项目落地,空闲一段时间,索性看看spring mvc.

Spring mvc请求调用模型

spring mvc

一。spring  mvc 的配置起点  - web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3.1.xsd">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用","号分隔 -->
  <context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!--Spring ApplicationContext 载入 -->
  
  <context-param>     
 	<param-name>webAppRootKey</param-name>      
 	<param-value>spring_mvc_xml.root</param-value> 
  </context-param>
  <!-- 开一条watchdog线程每3秒扫描一下配置文件的变化; -->
  <context-param>
      <param-name>log4jRefreshInterval</param-name>
      <param-value>3000</param-value>
 	</context-param>
  <context-param>   
 	<param-name>log4jConfigLocation</param-name>   
 	<param-value>/WEB-INF/classes/log4j.properties</param-value>
  </context-param>
  <listener>   
 	<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener> 

  <servlet>
        <servlet-name>webUrl</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>  
        	<param-name>contextConfigLocation</param-name>  
        	<param-value>classpath:/com/wsg/conf/web/webUrl-servlet.xml</param-value>  
    	</init-param>  
    	<load-on-startup>1</load-on-startup> 
    </servlet>
    <!-- 拦截所有以do结尾的请求 -->
    <servlet-mapping>
        <servlet-name>webUrl</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
    
    <listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
</web-app>

 作为项目初始化的第一步,在springMVC架构中最主要的两点:

   1.ContextLoaderListener

       该监听器主要负责整个项目根上下文的初始化,并保存至ServletContext,建立整个项目的ioc体系。

    其中的初始化流程如下图:

  

   2.DispatcherServlet

      该servlet配置主要负责spring mvc里的子上下文的初始化。

     包括相应的MVC bean对象:

         国际化支持:LocalResolver

         request映射:HandlerMappings

返回视图的生成:Viewresolver

         等 。。。。。。。

   初始化流程如图:

猜你喜欢

转载自sagewsg.iteye.com/blog/1486959
今日推荐