SpringMVC启动流程

SpringMVC中web.xml的配置

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:app-context.xml</param-value>
  </context-param>
  
 <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

<servlet>
    <servlet-name>app</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:app-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>app</servlet-name>
    <url-pattern>/app/*
  

Spring的启动过程其实就是IOC容器的启动过程

一、Listener初始化,实例化IOC容器

首先定义标签,用于配置一个全局变量,初始化上下文,然后通过后来加载配置文件,其中ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。

二、DispatchServlet初始化

创建和初始化相关Servlet,在开发中常用的Servlet就是DispatcherServlet类前端控制器,前端控制器作为中央控制器是整个Web应用的核心,用于获取分发用户请求并返回响应,DispatcherServlet是SpringMVC中的唯一servlet。

DispatchServlet会建立自己的上下文来持有Spring MVC特殊的bean对象,在建立这个自己持有的Ioc容器的时候,会从ServletContext中得到根上下文作为DispatchServlet上下文的parent上下文。有了这个根上下文,再对自己持有的上下文进行初始化,最后把自己持有的这个上下文保存到ServletContext中,供以后检索和使用。

你可能感兴趣的:(SpringMVC启动流程)