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

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

在这里插入图片描述

将环境注入上下文

在这里插入图片描述

应用上下文后置处理

在这里插入图片描述

添加初始化器

在这里插入图片描述

初始化上下文

在这里插入图片描述

相关文章:

  • 自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
  • 【发票提取表格】批量PDF电子发票提取明细保存到Excel表格,批量提取ODF电子发票明细,行程单明细,单据明细保存到表格,使用步骤、详细操作方法和注意事项
  • python 自动化教程
  • Conda 完全指南:从环境管理到工具集成
  • 探索C++对象模型:(拷贝构造、运算符重载)成员函数的深度解读(中篇)
  • PYTHON训练营DAY28
  • 18.自动化生成知识图谱的多维度质量评估方法论
  • R语言数据框(datafram)数据的构建及简单分析
  • SAP学习笔记 - 开发12 - CAP 之 开发准备,添加服务
  • MySQL刷题相关简单语法集合
  • 2023年全国青少年信息素养大赛-图形化编程复赛真题—打气球
  • PIC16F18877 的主时钟 设置方法
  • 第八节第四部分:认识泛型、泛型类、泛型接口
  • php fiber 应用
  • OpenCV透视变换
  • Java 应用如何实现 HTTPS:加密数据传输的实用指南
  • Ankr:Web3基础设施的革新者
  • 【第二篇】 初步解析Spring Boot
  • 【Python 算法零基础 3.递推】
  • 防范Java应用中的恶意文件上传:确保服务器的安全性
  • 外企聊营商|上海仲裁:化解跨国企业纠纷的“上海路径”
  • 澎湃与七猫联合启动百万奖金征文,赋能非虚构与现实题材创作
  • 上海虹桥国际咖啡文化节开幕,推出茶咖文化特色街区、宝妈咖啡师培训
  • 玉渊谭天丨卢拉谈美国降低对华关税:中国的行动捍卫了主权
  • 博柏利上财年营收下降17%,计划裁员1700人助推股价涨超18%
  • 广东省原省长卢瑞华逝世,享年88岁