springboot启动流程

springboot启动流程

1、创建SpringApplication实例

保存一些信息:包括

  1. 保存主配置类等信息
  2. 判断当前应用类型
  3. 去spring.factory文件中找org.springframework.boot.Bootstraper, 初始化启动引导器
  4. 去spring.factory文件中找ApplicationContextInitializer,容器初始化器
  5. 去spring.factory文件中找ApplicationListener

2、运行SpringApplication

  1. 创建引导上下文(Context环境) createBootstrapContext(),获取到所有bootstrappers依次执行initialize()来完成引导启动器器上下文环境的设置
  2. 去spring.factory文件中找SpringApplicationRunListener,获取所有RunListener(运行监听器),为了方便所有Listener进行事件感知
  3. 遍历SpringApplicationRunListener,调用starting方法,相当于通知所有监听器,项目正统在启动
  4. 保存命令行参数
  5. 准备环境:创建或返回基础环境信息,包括读取所有配置源的配置属性值,通知所有监听器当前环境准备完成
  6. 创建IOC容器:根据项目类型创建容器;会创建AnnotationConfigServletWebServerApplicationContext
  7. 准备ApplicationContext IOC容器的基本信息:保存环境信息,IOC容器的后置处理流程,应用初始化器:通知所有ApplicationContextInitializer调用initialize,对IOC容器进行初始化扩展功能,遍历所有的ApplucationListener调用contextPrepared
  8. 刷新IOC容器,创建IOC容器中的所有组件
  9. 遍历监听器调用listener.started(context)
  10. 调用所有的runners:获取容器中的ApplicationRunner或者CommandLineRunner方法
  11. 调用所有监听器的runnning方法;
  12. 上述过程如果出现异常,则会调用Listener的failed方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值