Spring Boot启动流程

 
 

简述:

  1. 项目启动时,调用入口类MySpringBootApplication的main方法。
  2. 入口类MySpringBootApplication的main方法会调用SpringApplication的静态方法run。
  3. 在run方法中首先创建一个SpringApplication对象实例,然后调用SpringApplication对象实例的run方法。
  4. 查询和加载所有的SpringApplicationListener监听器。
  5. SpringApplicationListener监听器调用其starting方法,Spring Boot通知这些SpringApplicationListener监听器,我马上要开始执行了。
  6. 创建和准备Spring Boot应用将要使用的Environment环境,包括配置要使用的PropertySource以及Profile。
  7. 创建和初始化应用上下文ApplicationContext。这一步只是准备工作,并未开始正式创建。
  8. 这一步是最重要的,Spring Boot会通过@EnableAutoConfiguration获取所有配置以及其他形式的IoC容器配置加载到已经准备完毕的ApplicationContext。
  9. 主要是调用ApplicationContextInitializer类的initialize方法对应用上下文进行设置和处理。
  10. 调用ApplicationContext上下文的refresh方法,使Ioc容器达到可用状态。
  11. 查找当前ApplicationContext上下文是否注册有ApplicationRunner与CommandLineRunner,如果有,循环遍历执行ApplicationRunner和CommandLineRunner的run方法。
  12. 执行SpringApplicationListener的finished方法,Spring Boot应用启动完毕。
 

源码:

       ***

 
posted @ 2021-01-22 18:19  Galaxy可乐  阅读(673)  评论(0)    收藏  举报