Spring Boot启动原理源码
注意:这个springboot启动源码和springboot自动配置原理的源码是十分重要的,面试的时候要是问springboot,一般都会问这两个。
源码:
SpringBoot 事假监听器发布顺序:
1.ApplicationStartingEvent
2.ApplicationEnvironmentPreparedEvent
1 调用SpringApplication.run启动springboot应用
2. 使用自定义SpringApplication进行启动
1. 创建SpringApplication
new SpringApplication(primarySources)
org.springframework.context.ApplicationContextInitializer
org.springframework.context.ApplicationListener
总结:
- 获取启动类
2.获取web应用类型
3.读取了对外扩展的ApplicationContextInitializer ,ApplicationListener - 根据main推算出所在的类
就是去初始化了一些信息
2. 启动
run
启动springboot最核心的逻辑
prepareEnvironment
prepareContext
预初始化上下文
总结:
- 初始化SpringApplication 从spring.factories 读取 listener ApplicationContextInitializer 。
2.运行run方法
3.读取 环境变量 配置信息… - 创建springApplication上下文:ServletWebServerApplicationContext
- 预初始化上下文 : 读取启动类
6.调用refresh 加载ioc容器
加载所有的自动配置类
创建servlet容器
7.在这个过程中springboot会调用很多监听器对外进行