@SpringBootConfiguration 等同于@Configuration
@EnableAutoConfiguration 从classpath下搜索所有META-INF/spring.factories
@ComponentScan
启动流程分为两步:
1.创建SpringApplication实例
1)判断是否为web环境
2) 设置初始化器
从META-INF/spring.factories处读取配置文件中Key为:org.springframework.context.ApplicationContextInitializer的value,进行实例化操作
3) 设置监听器
4) 推断应用入口类
2.执行SpringApplication.run()
1) 获取SpringApplicationRunListeners,启动监听
2) 根据SpringApplicationRunListeners以及参数来准备环境
3) 创建ApplicationContext(spring上下文)
4) 创建FailureAnalyzer, 用于触发从spring.factories加载的FailureAnalyzer和FailureAnalysisReporter实例
5) spring上下文前置处理
6) spring上下文刷新
7) spring上下文后置处理
参考文章:https://blog.csdn.net/dm_vincent/article/details/76735888