1、SpringApplication -> new SpringApplication() -> 调用构造方法 -> 初始化操作
1)判断当前类是web的serverlet
2)加载所有的初始化器
3)加载所有的监听器
4)设置程序运行的主类)
2、执行run方法->
1)创建计时器对象开始计时
2)设置handless的属性并设置到系统属性中
3)初始化监听器getRunLister()
4)启动准备好的监听器
5)设置命令行参数
6)准备环境对象
7)加载系统参数
8)设置环境监听器集合
9)打印banner图
10)创建应用程序上下文
(1)监听配置
(2)设置环境对象
(3)进行初始化操作
(4)load对应的资源
11)准备异常报告器
3、调用refresh方法:调用过程和spring一样,很多springboot的核心方法都是在此方法进行的。例如:
1)自动装配
2)tomcat配置
4、调用finishRefresh方法:留给用户自己扩展。
1)计时器结束
5、发布上下文启动时间
6、调用runner执行器
7、发布上下文准备就绪事件
8、springboot启动完成