当前位置:   article > 正文

SpringMVC源码分析:SpringMVC初始化(一)_springmvc启动初始化

springmvc启动初始化

一、概述

SpringMVC的初始化大概分为Spring的初始化和SpringMVC的初始化两个部分,他们之间的关系如下图。下面我将按照这个顺序进行详细介绍。

二、Spring初始化

ContextLoaderListener.contextInitialized进行容器的初始化。

 继续点进去ContextLoader.initWebApplicationContext方法。

ContextLoader.createWebApplicationContext创建了对应web容器。

ContextLoader.configureAndRefreshWebApplicationContext最终会进入AbstractApplicationContext.refresh方法完成Spring容器的初始化。

三、SpringMVC初始化

众所周知SpringMVC就是Servlet的容器,因此SpringMVC的初始化会围绕Servlet进行,HttpServletBean.init是Servlet初始化的入口。

 进入HttpServletBean.initServletBean方法,该方法的核心是initWebApplicationContext方法。

 最后进入HttpServletBean.createWebApplicationContext方法,该方法最后会进HttpServletBean.createWebApplicationContext方法。

 HttpServletBean.createWebApplicationContext方法的核心是内部调用的configureAndRefreshWebApplicationContext方法。

下面这个方法wac.addApplicationListener(new SourceFilteringListener(wac, new ContextRefreshListener()));,想容器中添加了SourceFilteringListener监听器。这个方法常常被忽略,但是却非常重要。SourceFilteringListener会监听ContextRefreshedEvent事件,并调用onApplicationEvent方法,SpringMVC容器初始化的入口主要在这里。但是这里起主要作用的是ContextRefreshListener这个监听器,他回去调用DispatcherServlet这个核心的类。

 DispatcherServlet.initStrategies初始化了SpringMVC九大核心组件。

最后回到 FrameworkServlet进行容器刷新。

 四、SpringMVC九大组件功能

SpringMVC九大组件功能如下。

参考文章:

https://zhuanlan.zhihu.com/p/520528670

谈谈你对Spring MVC中的九大组件的理解?_mvc九大组件_Tom弹架构的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/1015694
推荐阅读
相关标签
  

闽ICP备14008679号