当前位置: 首页 > 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快速入门
  • 厦大历史系教授林汀水辞世,曾参编《中国历史地图集》
  • 多地政府机关食堂五一“开门迎客”:怎么看这场“宠粉”大戏
  • 出现这几个症状,说明你真的老了
  • 澎湃读报丨央媒头版头条集中刊发:大国应有的样子
  • 五一假期首日,多地党政主官暗访督查节日安全和值班值守工作
  • 抗美援朝老战士宁昭逝世,享年93岁