SpringBoot启动流程解析

134 阅读1分钟

题外话:

SpringBoot对应Java版本的要求

image.png

Java8新特性

image.png

SMM搭建缺点

image.png

SpringBoot搭建有点

image.png

进入正题-开干

启动流程

框架初始化

image.png

  • 配置资源加载器
  • 配置primarySources
  • 应用环境检测
  • 配置系统初始化器

类名:ApplicationContextInitializer

介绍:Spring容器刷新之前执行的一个回调函数

作用:向SpringBoot容器中注册属性

使用:继承接口自定义实现 具体实现参考 juejin.cn/post/698950…

  • 配置应用监听器
  • 配置main方法所在类

框架启动

  • 计时器开始计时
  • headless模式赋值
  • 发送ApplicationStartingEvent
  • 配置环境模块
  • 发送ApplicationEnvironmentPreparedEvent
  • 打印banner
  • 创建应用上下文对象
  • 初始化失败分析器
  • 关联SpringBoot组件与上下文对象
  • 发送ApplicationContextInitializedEvent
  • 加载sources到context
  • 发送ApplicationPreparedEvent
  • 刷新上下文
  • 计时器停止计时
  • 发送ApplicationStartedEvent
  • 调用框架启动扩展类
  • 发送ApplicationReadyEvent

自动化装配

  • 收集配置文件中的配置工厂类
  • 加载组件工厂
  • 注册组件内定义bean