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

SpringBoot 核心总结图

SpringBoot 启动流程

在这里插入图片描述

SpringBoot 的启动流程主要有以下几个核心步骤:

在这里插入图片描述

SpringBoot 生命周期

在这里插入图片描述

SpringBoot 生命周期的每个阶段都会发布相应的事件:
在这里插入图片描述

在 SpringBoot 3.0.0 前,ready 阶段是 running,现在 running 已被废弃。

如果 SpringBoot 生命周期的正常阶段发生异常,会进入失败阶段并发布 ApplicationFailedEvent 事件。

Bean 生产过程

Bean 的生产大致有 4 个核心步骤:
在这里插入图片描述

1、BeanDefinitionLoader 加载 XML 文件或注解中定义的内容;
2、BeanDefinitionLoader 将加载的内容转换成 BeanDefinition;
3、BeanDefinitionRegistry 将 BeanDefinition 注册到 BeanFactory 中;
4、BeanFactory 负责将 BeanDefinition 生成 Bean;

BeanDefinitionLoader

在这里插入图片描述

BeanDefinitionLoader 依靠以下几个类完成加载并解析 BeanDefinition:

1、 AnnotatedBeanDefinitionReader:负责解析注解;
2、 AbstractBeanDefinitionReader:负责解析 XML 文件;
3、BeanDefinitionReader:负责解析 Groovy 文件;
4、ClassPathBeanDefinitionScanner:扫描指定类路径;

Bean 生命周期

在这里插入图片描述

Bean 生命周期的 5 个阶段:

1、实例化阶段:实例化 Bean;
2、填充属性阶段(可能发生循环依赖):对 Bean 的实例化对象进行属性填充;
3、初始化阶段(核心操作):负责初始化 Bean,执行一些预定义的方法;
4、使用阶段:开发者使用;
5、销毁阶段:执行一些预定义的销毁方法;

Bean 与循环依赖

在这里插入图片描述

在 Spring 中,若创建 Bean 发生解决循环依赖会通过三级缓存解决。

1、singletonObjects(一级缓存):存放 完整 的 Bean 对象;
2、earlysingletonObjects(二级缓存):存放 Bean 的 早期(early)对象;
3、singletonFactories(三级缓存):存放 Bean 的 工厂(Factory)对象;

相关文章:

  • Redis 回收进程工作流程详解
  • 【Python 学习 / 5】函数详解(定义、参数、作用域、lambda、内置函数)
  • Redis 简介
  • 基于ThinkPHP 5~8兼容的推荐算法类实现,
  • TikTok 多账号管理与自动化运营:矩阵系统功能全解析
  • 软件测试面试题精选33道,附答案+文档
  • Redis 启用自动内存碎片清理异常
  • 深化与细化:提示工程(Prompt Engineering)的进阶策略与实践指南2
  • 为AI聊天工具添加一个知识系统 之108 详细设计之49 相提并论的三者、三位一体Triad和圣灵倒三角
  • Android 10.0 移除wifi功能及相关菜单
  • 前端常见面试题-2025
  • 前端开发中关于虚拟列表的实现与应用优化
  • 若依集成WebSocket
  • 如何在 GitHub 中创建一个空目录 ?
  • 如何提高网站在百度中的权重?
  • 使用OBS和nginx实现直播流
  • VUE 集成高德地图部署到nginx后打开不了,控制台报错
  • TypeScript语言的云计算
  • js考核第五题
  • JavaEE-SpringBoot快速入门
  • 在县中,我看到“走出去”的渴望与“留下来”的惯性
  • 特朗普政府称将恢复被终止的外国学生合法身份
  • 最大规模的陈逸飞大展启幕:回望他,回望一个时代
  • 11-13世纪的地中海贸易
  • 外交部否认中美就关税问题进行磋商谈判
  • 上海天文馆加持,书友可在徐家汇书院“飞越银河系”!