美文网首页
springboot的启动过程

springboot的启动过程

作者: 轻舞凋零 | 来源:发表于2022-07-17 12:59 被阅读0次

springboot的组成

  • spring-core
    • ioc,aop
    • web mvc
    • dao
    • orm

@SpringBootApplication注解

  • @SpringBootConfiguration
  • @EnableAutoConfiguration
  • @ComponentScan

整体过程

  • 1 初始化 SpringApplication
    • 从spring.factories文件中找出key为ApplicationContextInitializer实例化
    • setInitializer设置到SpringApplication的initializers属性中
    • 设置监听器
  • 2 运行SpringApplication
    • 启动模块:流程监控,配置环境加载,ApplicationContext上下文
    • refreshContext方法刷新应用上下配置模块加载
    • META-INF/spring.factories文件配置
    • 2.1 运行 SpringApplicationRunListeners
    • 2.2 ConfigurableEnviroment配置环境模块和监听
      • 创建配置环境
      • 加载属性配置文件
      • 配置监听
  • 2.3 ConfigurableApplicationContext 配置应用上下文
    • 配置应用上下文信息
    • 配置基本信息

springboot自动装配机制

  • @EnableAutoConfiguration
    • @CoditionalOnClass
    • @Conditional
      • ConditionalOnBean
      • ConditionalOnClass
      • ConditionalOnExpression
  • @AutoConfigureAfter @AutoConfigureBefore

整体流程

  • @EnableAutoConfiguration
  • ApplicationListener
  • SpringApplicationRunListener
  • ApplicationContextInitializer
  • CommandLineRunner

扩展功能的点

  • SpringApplication启动
  • 初始化监听器,环境变量准备
  • 获取SpringApplicationRunnerListener监听器
    • listenrs添加
      • SpringApplication.addListeners(...)
      • SpringApplication.setListeners(...)
    • META-INF/spring.factories文件中添加
  • 准备上下文Listener,触发refresh容器
  • 获取执行器Runner,扩展用户接口功能

所有的stater是在listener里面的

相关文章

网友评论

      本文标题:springboot的启动过程

      本文链接:https://www.haomeiwen.com/subject/szqlirtx.html