以下简单介绍SpringBoot启动原理
1.构造SpringApplication对象时会推断当前的webApplicationType(web运行环境)
2.读取META-INF/spring.factories文件下的ApplicationListener监听器与ApplicationContextInitializer初始化器的配置并进行实例化,为后续做准备工作
3.读取读取META-INF/spring.factories文件下SpringApplicationRunListener配置并实例化EventPublishingListener发布一个ApplicationStartingEvent事件
4.预初始化环境,读取环境变量与配置信息,并发布一个ApplicationEnvironmentPreparedEvent事件
5.根据webApplicationType构建Spring上下文并预初始化上下文
6.执行所有ApplicationContextInitializer初始化器的Initialize方法并发布一个ApplicationContextInitializerEvent事件
7.加载自动配置类并发布一个ApplicationPreparedEvent事件
8.调用refresh加载IOC容器,最后发布一个ApplicationStartedEvent事件