SpringBoot启动流程深入分析
文章目录
- 背景
- 启动流程
- listeners.starting
- 先获取运行监听器
- 获取SpringApplicationRunListener的实例
- 监听器接口
- 从spring.factories中加载数据,这里有本地缓存
- 监听启动
- 发布starting事件
- prepareEnvironment
- 准备环境
- 获取或创建环境
- 配置环境
- createApplicationContext
- 创建上下文
- prepareContext
- 将环境注入上下文
- 应用上下文后置处理
- 添加初始化器
- 初始化上下文
背景
- springboot作为java服务的基座,有很多扩展点和值得学习的设计。接下来我们以应用事件为条线来分析服务启动流程。
- 以下源码分析基于spring-boot-3.1.5。

启动流程
listeners.starting
先获取运行监听器

获取SpringApplicationRunListener的实例

监听器接口

从spring.factories中加载数据,这里有本地缓存

监听启动

发布starting事件

prepareEnvironment
准备环境

获取或创建环境


配置环境

createApplicationContext
创建上下文

prepareContext

将环境注入上下文

应用上下文后置处理

添加初始化器

初始化上下文

