当前位置 博文首页 > L-Java:Spring MVC 初始化源码(2)—DispatcherServlet与子容器

    L-Java:Spring MVC 初始化源码(2)—DispatcherServlet与子容器

    作者:[db:作者] 时间:2021-07-25 12:20

    ??基于最新Spring 5.x,详细介绍了Spring MVC 初始化流程的源码,主要包括DispatcherServlet与MVC子容器的初始化,以及各种MVC组件的初始化。

    ??上一篇文章我们讲解了ContextLoaderListener监听器与根上下文容器的初始化。
    ??ContextLoaderListenercontextInitialized方法回调完毕之后,Root WebApplicationContext初始化完毕,随后会初始化全部的Filter,并且执行init回调,最后会按顺序初始化全部的即时创建的Servlet,对于Spring MVC来说,最重要的就是DispatcherServlet,该过程同时会涉及到MVC子容器的创建和初始化,以及各种MVC组件的初始化。一起来看看DispatcherServlet的初始化源码吧!

    ??下面的源码版本基于5.2.8.RELEASE

    Spring MVC源码 系列文章

    Spring MVC 初始化源码(1)—ContextLoaderListener与父上下文容器的初始化

    Spring MVC 初始化源码(2)—DispatcherServlet与子容器的初始化以及MVC组件的初始化【一万字】

    Spring MVC 初始化源码(3)—<mvc:annotation-driven >配置标签的源码解析

    Spring MVC 初始化源码(4)—@RequestMapping注解的源码解析

    Spring MVC 请求执行流程的源码深度解析【两万字】

    文章目录

    • Spring MVC源码 系列文章
    • 1 DispatcherServlet的概述
    • 2 HttpServletBean#init()设置init属性
    • 3 FrameworkServlet#initServletBean初始化MVC容器
      • 3.1 initWebApplicationContext初始化子MVC容器
        • 3.1.1 configureAndRefreshWebApplicationContext配置并刷新子容器
          • 3.1.1.1 getNamespace获取名称空间
          • 3.1.1.2 applyInitializers应用ApplicationContextInitializer扩展
        • 3.1.2 findWebApplicationContext查找上下文容器
        • 3.1.3 createWebApplicationContext创建子上下文容器
        • 3.1.4 ContextRefreshListener监听器
    • 4 DispatcherServlet#onRefresh初始化MVC组件
      • 4.1 initMultipartResolver
      • 4.2 initHandlerMappings
        • 4.2.1 getDefaultStrategies获取默认组件
      • 4.3 initLocaleResolver
      • 4.4 其他组件的初始化
    • 5 总结
    cs
    下一篇:没有了