Spring Boot启动顺序(源码导读 )
一、源码导读(spring boot版本为:2.0.4.RELEASE)
(1)启动类:@SpringBootApplication注释的类,核心方法为:

点击进入静态方法run 则进入了SpringApplication 类,该类是spring boot启动的核心类。
(2)核心类:SpringApplication
2.1、再次调用了同名静态方法run

2.2、根据Class创建SpringApplication实例,并且调用实例对象的run方法

2.2.1 创建SpringApplication,调用构造函数

上图1.2.1代码又再次调用了异参构造函数 >>>>

(3)回顾上面的2.2代码,在创建SpringApplication对象后,继而调用对象的run方法>>而这里就是最核心的地方
PS:ConfigurableApplicationContext 该接口继承自ApplicationContext接口。当你使用一个应用上下文时,我们使用的是ApplicationContext接口接住实例来操作,而当我们想使用应用上下文管理该应用的生命周期时,我们应当使用ConfigurableApplicationContext 接口接住对象,因为管理生命周期的抽象函数均在ConfigurableApplicationContext 接口实现。

接上图>>>>

接上图>>>>

run方法执行完 -> 2.1 -> 一(1)
到此,启动完毕。