七叶笔记 » java编程 » SpringBoot超详细分析启动流程

SpringBoot超详细分析启动流程

Springboot启动类

SpringBootApplication注解

@SpringBootApplication注解上标注了@EnableAutoConfiguration,表示TestApplication是引导类。

Springboot的启动方法中传入了两个参数,引导类,和程序参数。

调用run方法

run方法中有两步,创建SpringApplication和执行SpringApplication的run方法。

1、创建SpringApplication

SpringApplication的构造器

1.1、判断web类型

1.2、加载上下文初始化器

利用spi加载 ApplicationContextInitializer 的实现类

将初始化好的上下文初始化器设置到成员变量

1.3、加载监听器

将初始化好的监听器设置到成员变量

1.4、获得引导类类型

2、执行SpringApplication的run方法启动Springboot

2.1、准备environment

2.1.1、创建environment

这里根据web类型创建不同的environment

2.1.2、配置environment

配置PropertySources

主要为了在PropertySources添加一个SimpleCommandLinePropertySource。

配置profiles

将profile添加到environment

2.2、打印Banner

2.3、创建Spring上下文

2.4、准备上下文

2.4.1、ApplicationContext的后置处理

2.4.2、应用初始化器

执行所有实现了 ApplicationContextInitializer 接口的类的initialize方法。

2.4.3、获取sources

这里组装了引导类和自定义的source

2.4.4、加载

2.5、刷新上下文

刷新

2.6、上下文刷新后

这里是一个空实现,应该是作为模板扩展吧。

2.7、执行回调

这里会调用所有实现了ApplicationRunner,CommandLineRunner的接口的实现类的run方法。

到此这篇关于SpringBoot超详细分析启动流程的文章就介绍到这了,更多相关SpringBoot启动分析内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!

相关文章