# 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. 配置应用的主方法所在类


浙公网安备 33010602011771号