SpringBean的生命周期

🔥 博客主页**🔥** :【 坊钰_CSDN博客

欢迎各位点赞**👍** 评论**✍收藏⭐**

1. 四个步骤

一个Bean从出生到退休一共分为四个步骤:实例化,属性注入,初始化,销毁

2. 实例化

通过反射根据 Bean 的类生成早期 Bean 对象(未依赖注入,属性为 null)

3. 属性注入

解析 @Autowired、@Resource、@Value 等注解,完成属性注入

4. 初始化

  • 最先执行的是一堆Aware接口,让Bean知道自己是谁,在哪个工厂里
  • 接着执行 BeanPostProcessor 前置处理,也就是执行BeanPostProcessor的before方法(postProcessBeforeInitialization())
  • 然后才轮到Bean自己的初始化逻辑,比如@PostConstruct、afterPropertiesSet或者init-method
  • 最后执行 BeanPostProcessor后置处理,也就是执行BeanPostProcessor的after方法(postProcessAfterInitialization()),AOP动态代理很多就是在这里完成的

5. 销毁

当容器关闭时,Spring会调用@PreDestroy、DisposableBean、destroy-method等帮你释放资源

相关推荐
福兮说13 小时前
纯前端把图片压缩到指定体积:canvas.toBlob 配合二分查找
前端·javascript·canvas·图片处理
是立不是利13 小时前
CSS 入门与进阶:从选择器到响应式布局的完整指南
前端·css
镭立智能制造13 小时前
电线电缆换线频繁?MES系统如何缩短换线时间40%
前端·制造
Amos_Web14 小时前
Rspack 源码解析(五):CodeGenerationPass 与模块代码生成
前端·前端框架·源码阅读
八荒启·交互动画14 小时前
Web特效06——WebGL深挖:顶点着色器和片元着色器到底在干什么
前端·网页特效·八荒启-交互动画·八荒启
这锅我不背哈14 小时前
前端权限控制实践:基于 RBAC 的完整落地方案
前端
星空14 小时前
Map<String, String>`Map`是接口,不能直接 new
java·前端·算法
开开心心就好15 小时前
低年级识字练笔顺工具,电脑和安卓端都能用
前端·javascript·网络·安全·scala·erlang·语音识别
杨利杰YJlio15 小时前
ITSK PE 26U5 测试版解读:组件完善、VMD 修复与服务器支持边界
前端·javascript·后端
志尊宝15 小时前
Vue3 零基础每日笔记(021):class 与 style 动态绑定——对象、数组、三元表达式写法汇总
前端·vue.js·笔记·前端框架·html5