SpringBoot的启动流程

以下是个人的理解,整理出来的大致流程:

  1. run方法执行 -->
  2. StopWatch.started 记录任务执行时间 -->
  3. system.setProperty headless属性设置 -->
  4. getRunListener,初始化启动监听器,顺便加载META-INF/spring.factories文件,所有配置文件类名) -->
  5. 通过反射拿到配置文件实例,存入缓存中 -->
  6. listeners.starting() 启动各种监听 -->
  7. prepareEnvironment环境配置 -->
  8. this.printBanner -->
  9. createApplicationContext 分是否为web项目,WebApplicationType -->
  10. getSpringFactoriesInstances,通知已经完成上下文件配置了 -->
  11. prepareContext 刷新上下文,加载所有bean到容器 -->
  12. refreshContext 如果是web,则再次刷上下文,启动server -->
  13. listeners.started(context) 发布启动完成的事件 --->
  14. this.callRunners -->回调Running 完成启动

    如果您对这个理解问题,欢迎在评论区留些您的理解。
原文地址:https://www.cnblogs.com/ysq0908/p/13544448.html