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

Spring Bean生命周期

Spring Bean生命周期


💖The Begin💖点点关注,收藏不迷路💖
BeanPostProcessor.postProcessBeforeInitialization
自定义的init方法
InitializingBean.afterPropertiesSet
BeanPostProcessor.postProcessAfterInitialization
DisposableBean.destroy
配置的destroy-method
实例化
依赖注入
感知阶段
BeanNameAware
BeanFactoryAware
前处理
初始化
Bean准备就绪
后处理
使用
销毁
资源清理

Spring Bean的生命周期包括以下几个主要阶段:

  1. 实例化

    • 根据配置创建Bean实例。
  2. 依赖注入

    • 为Bean的属性注入依赖。
  3. 感知阶段

    • BeanNameAware:设置Bean的名称。
    • BeanFactoryAware:提供对容器自身的访问。
  4. 前处理

    • BeanPostProcessor的postProcessBeforeInitialization方法调用,为Bean的进一步处理提供机会。
  5. 初始化

    • 自定义的init方法:通过配置指定的方法。
    • InitializingBean接口afterPropertiesSet方法调用,完成Bean的初始化工作。
  6. 后处理

    • BeanPostProcessor的postProcessAfterInitialization方法调用,为Bean的最终处理提供机会。
  7. 使用

    • Bean准备就绪,供应用中的其他部分使用。
  8. 销毁

    • DisposableBean接口destroy方法调用,用于清理资源。
    • 配置的destroy-method:通过配置指定的销毁方法调用。

这些阶段共同构成了Spring Bean从创建到销毁的完整生命周期。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 什么是单例模式?
  • 【两整数之和】python刷题记录
  • Go并发编程
  • 简单的位运算
  • 设计模式实战:社交网络平台的设计与实现
  • 03:【stm32】GPIO
  • 【STM32】“stm32f10x.h” 头文件的作用
  • iPhone怎么大批量删除照片:释放你的存储空间
  • 【第十天】进程和线程的区别 并行和并发有什么区别 解释一下用户态和核心态
  • C语言初阶(11)
  • 元组(tuple)—数据容器
  • 常见的MySQL数据库面试题
  • 样本熵与近似熵:度量时间序列复杂性的方法
  • 2024 NVIDIA开发者社区夏令营环境配置指南(Win Mac)
  • 【过题记录】8.4(robocom补题,网络流)
  • (三)从jvm层面了解线程的启动和停止
  • [译]前端离线指南(上)
  • 【译】理解JavaScript:new 关键字
  • 03Go 类型总结
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • flutter的key在widget list的作用以及必要性
  • JDK 6和JDK 7中的substring()方法
  • nginx 配置多 域名 + 多 https
  • php中curl和soap方式请求服务超时问题
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Python打包系统简单入门
  • SSH 免密登录
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 分布式任务队列Celery
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 简析gRPC client 连接管理
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 排序算法之--选择排序
  • 前嗅ForeSpider教程:创建模板
  • 区块链将重新定义世界
  • 如何优雅地使用 Sublime Text
  • 通过npm或yarn自动生成vue组件
  • 微信公众号开发小记——5.python微信红包
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 在Mac OS X上安装 Ruby运行环境
  • 自定义函数
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • # Panda3d 碰撞检测系统介绍
  • #etcd#安装时出错
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #单片机(TB6600驱动42步进电机)
  • (+4)2.2UML建模图
  • (06)Hive——正则表达式
  • (19)夹钳(用于送货)
  • (6)设计一个TimeMap
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)spring boot建达集团公司平台 毕业设计 141538