天天看点

29.SpringBoot执行流程

SpringBoot完整启动流程如下图所示。

29.SpringBoot执行流程

(1).项目启动时,调用入口类SpringBootApplication(SpringBootApplication中的SpringBoot为项目名称)的main方法。

(2).入口类SpringBootApplication的main方法会调用SpringApplication的静态方法run。

(3).在run方法中首先创建一个SpringApplication对象实例,然后调用SpringApplication对象实例的run方法。

(4).查询和加载所有的SpringApplicationListener监听器。

(5).SpringApplicationListener监听器调用其starting方法。

(6).创建和准备SpringBoot应用将要使用的Environment环境,包括配置要使用的PropertySource以及Profile。

(7).创建和初始化应用上下文ApplicationContext。这一步只是准备工作,并未开始正式创建。

(8).SpringBoot通过@EnableAutoConfiguration获取所有配置以及其他形式的IOC容器配置,然后加载到已经准备完毕的ApplicationContext。

(9).调用ApplicationContextInitializer类的initialize方法对应用上下文进行设置和处理。

(10).调用ApplicationContext上下文的refresh方法,使IOC容器达到可用状态。