::
::
::
::
::
|
23 |
24 |
25 |
26 |
27 |
28 |
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
1
|
2
|
3
|
4
|
5
|
# SpringBoot的run方法流程分析

1. 开始启动Springboot应用

2. 构建一个SpringBoot应用



2.1.SpringApplication.run()启动此应用


2.2.启动启动计时器开始计时应用启动监听器开始监听


2.3.SpringApplicationRunListeners应用启动监听器模块
2.4.ConfigurationEnvironment配置环境模块
2.4.1. 创建配置环境(web/noweb)



2.4.2. 加载属性文件资源





2.4.3. 配置监听


2.5.Banner配置SpringBoot彩蛋


2.6.ConfigurableApplicationContext应用上下文模块


2.6.1. 创建应用上下文对象(web/noweb)




2.6.2. 基础属性配置


2.6.2.1. 加载配置环境


2.6.2.2. ResourceLoader资源加载器




2.6.2.3. 配置监听





2.6.2.4. 加载启动参数


2.6.3. 更新应用上下文


2.6.3.1. 准备环境所需bean工程


2.6.3.2. 通过工厂产生环境所需bean




2.6.3.3. 应用启动计时器结束计时应用启动监听器结束监听



2.6.3.4. SpringApplication启动结束



3. 初始化模块


4. 配置source


5. 配置是否web环境


6. 创建初始化构造器



6.1. 得到所需工厂集合的实例


6.2. 获取传入的工厂类名、类加载器




6.3. 通过类加载器、获取指定的spring.factories文件



6.4. 获取文件中工厂类的全路径


6.5. 通过类路径反射得到工厂的class对象、构造方法



6.6. 生成工厂实例返回


7. 创建应用监听器


8. 配置应用的主方法所在类


posted on
2022-04-23 16:57
ofanimon
阅读(
136)
评论()
编辑
收藏
举报
// 侧边栏目录
// https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南