Spring启动执行流程梳理
程序员文章站
2022-03-10 09:55:42
...
注:本文梳理启动流程使用的Spring版本:4.0.2.RELEASE
使用spring配置,都需要在web.xml中配置一个spring的监听器和启动参数(context-param),如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring-*.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
web容器启动时,下面为spring加载执行步骤:
- 执行web.xml中的ContextLoaderListener监听器
- 初始化ContextLoaderListener中的contextInitialized方法
- contextInitialized方法中调用父类(ContextLoader)的initWebApplicationContext方法
- initWebApplicationContext方法中执行了三个任务
- 创建WebApplicationContext容器
- 加载context-param中配置的spring配置文件
- 初始化配置文件中及创建配置文件中的bean
- 创建WebApplicationContext容器
web容器停止时候会执行ContextLoaderListener的contextDestroyed方法销毁context容器
推荐阅读
-
详解Spring IOC 容器启动流程分析
-
利用spring实现服务启动就自动执行某些操作的2种方式
-
Unary模式下客户端创建 default-executor 和 resolver-executor 线程和从启动到执行grpc_connector_connect的主要流程
-
Spring MyBatis初始化解析及sql执行流程
-
Spring MVC 执行流程分析
-
Spring揭秘日志——(番外)SpringIOC容器创建流程梳理
-
ROS源码研究(二):命令roscore执行流程及添加开机自动启动的节点(类似/rosout)
-
Spring IOC 容器预启动流程源码探析
-
Spring MVC启动流程分析
-
Spring Security过滤器链加载执行流程源码解析