大致流程如下:
- 初始化SpringApplication,从META-INF下的spring.factories读取
ApplicationListener/ApplicationContextInitializer
2.运行SpringApplication的run方法
3.读取项目中环境变量、jvm配置信息、配置文件信息等
4.创建Spring容器对象(ApplicationContext)
- 利用
ApplicationContextInitializer初始化Spring容器对象,读取启动类
6.调用spring的refresh加载IOC容器、自动配置类,并创建bean、servlet容器等信息
7.springboot会调用很多监听器
8.如果启动时发生异常,则发送ApplicationFailedEvent事件