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等帮你释放资源

相关推荐
梓䈑2 分钟前
【用 Vibe Coding 实现的 C++17 在线判题系统】前端开发 + Web 自动化测试
前端·c++·ai编程
程序员黑豆38 分钟前
鸿蒙应用开发 @BuilderParam 使用教程:实现灵活的 UI 插槽
前端·harmonyos
万少41 分钟前
用 TraeWork 给小孩做一个家庭工作台
前端·人工智能·后端
孙启超1 小时前
【AI应用开发】ReAct 原理是什么?和普通直接提问 LLM 差别在哪?
前端·人工智能·llm·agent·react·rag·ai应用开发
SynthWriter1 小时前
下班前接到急活?我用 TRAE Work 20 分钟搞定了一套完整页面原型
前端
minimoon_jojo1 小时前
Antd Table虚拟滚动详解
前端
颜进强1 小时前
Calude Code - 23 用 MCP 把 Jenkins 变成 AI 队友:一次对话完成自动化发布
前端·后端
wangjialelele1 小时前
Selenium4 + Java Web自动化测试入门指南:从环境搭建到常用操作详解
java·开发语言·前端·测试工具·自动化
J船长2 小时前
Spec Kit 入门:AI Agent 时代的规格驱动开发实践
前端
程序员黑豆2 小时前
鸿蒙应用开发 @Builder 使用教程:从入门到精通
前端·harmonyos