spring boot启动流程
1、新建module,在主程序类加入断点,启动springboot,如下图所示。

2、首先进入SpringAplication类run方法,如下图所示。

3、run方法新建SpringApplication对象,如下图所示。

4、SpringApplication对象的run方法,如下图所示。

5、run方法首先创建并启动计时监控类,如下图所示。

6、接着通过configureHeadlessProperty设置java.awt.headless的值,如下图所示。

7、接着调用getRunListeners创建所有spring监听器,如下图所示。

8、接着DefaultApplicationArguments初始化应用应用参数,如下图所示。

9、接着prepareEnvironment根据运行监听器和参数准备spring环境,如下图所示。

10、接着调用createApplicationContext方法创建应用上下文,如下图所示。

11、通过prepareContext准备应用上下文,如下图所示。

12、refreshContext方法刷新上下文,如下图所示。

13、调用stop方法停止计时监控器类,如下图所示。

14、调用started发布应用上下文启动完成事件,如下图所示。

15、callRunners方法执行所有runner运行器,如下图所示。

16、调用running发布应用上下文就绪事件,如下图所示。

17、最后返回应用上下文,如下图所示。
