当前位置: 首页 > ai >正文

SpringBoot启动流程深入分析

文章目录

    • 背景
    • 启动流程
      • listeners.starting
        • 先获取运行监听器
        • 获取SpringApplicationRunListener的实例
        • 监听器接口
        • 从spring.factories中加载数据,这里有本地缓存
        • 监听启动
        • 发布starting事件
      • prepareEnvironment
        • 准备环境
        • 获取或创建环境
        • 配置环境
      • createApplicationContext
        • 创建上下文
      • prepareContext
        • 将环境注入上下文
        • 应用上下文后置处理
        • 添加初始化器
        • 初始化上下文

背景

  • springboot作为java服务的基座,有很多扩展点和值得学习的设计。接下来我们以应用事件为条线来分析服务启动流程。
  • 以下源码分析基于spring-boot-3.1.5。
    在这里插入图片描述

启动流程

listeners.starting

先获取运行监听器

在这里插入图片描述

获取SpringApplicationRunListener的实例

在这里插入图片描述

监听器接口

在这里插入图片描述

从spring.factories中加载数据,这里有本地缓存

在这里插入图片描述

监听启动

在这里插入图片描述

发布starting事件

在这里插入图片描述

prepareEnvironment

准备环境

在这里插入图片描述

获取或创建环境

在这里插入图片描述
在这里插入图片描述

配置环境

在这里插入图片描述

createApplicationContext

创建上下文

在这里插入图片描述

prepareContext

在这里插入图片描述

将环境注入上下文

在这里插入图片描述

应用上下文后置处理

在这里插入图片描述

添加初始化器

在这里插入图片描述

初始化上下文

在这里插入图片描述

http://www.xdnf.cn/news/6754.html

相关文章:

  • JavaScript【5】DOM模型
  • AI赋能把“杂多集合”转化为“理想集合”的数学建模与认知升级
  • Git 版本控制系统入门指南
  • 基于Llama3的开发应用(二):大语言模型的工业部署
  • (C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)(网页版预告)(html)(js)(json)
  • java函数内的变量问题
  • 高频面试题(含笔试高频算法整理)基本总结回顾25
  • 汽车Wafer连接器:工业设备神经网络的隐形革命者
  • git提交库常用词
  • 深度学习---知识蒸馏(Knowledge Distillation, KD)
  • BGP路由策略 基础实验
  • NY321NY322美光闪存芯片NY323NY336
  • 手机打电话时如何将通话对方的声音在手机上识别成文字
  • python + streamlink 下载 vimeo 短视频
  • 区块链基本理解
  • OCCT知识笔记之OCAF框架详解
  • CSPM-3级考试成绩已出!附查询流程
  • 1949-2022年各省农作物播种面积数据(22个指标)
  • Python开源项目月排行 2025年4月
  • SpringBoot中使用Flux实现流式返回的技术总结
  • Java8到24新特性整理
  • 芯片生态链深度解析(一):基础材料篇——从砂砾到硅基王国的核心技术突围
  • AI人工智能在教育领域的应用
  • 水库雨水情测报与安全监测系统解决方案
  • 科达嘉数字功放电感应用于英飞凌参考设计REF_MA5302BTLSPS_400W
  • opencv入门指南
  • STM32外设AD-DMA+定时读取模板
  • 如何离线环境下安装Dify插件
  • SettingsIntelligence
  • 梦熊解析:202505基础算法