死记硬背spring bean 的生命周期

1.bean的生命周期

我们平常经常使用类似于new Object()的方式去创建对象,在这个对象没有任何引用的时候,会被gc给回收掉。而对于spring而言,它本身存在一个Ioc容器,就是用来管理对象的,而对象的生命周期也完全由这个容器所控制。Spring 中每个 Bean 的生命周期如下:

2.主要步骤简述

  • 实例化 Bean:通过反射调用构造方法实例化对象。
  • 依赖注入:装配 Bean 的属性。
  • 实现了 Aware接口的 Bean,执行接口方法(如创建bean的名称等等):如顺序执行 BeanNameAware、BeanFactoryAware、ApplicationContextAware的接口方法。
  • Bean 对象初始化前,循环调用实现了 BeanPostProcessor 接口的预初始化方法(postProcessBeforeInitialization)。
  • Bean 对象初始化:顺序执行 @PostConstruct 注解方法、InitializingBean 接口方法、init-method 方法。
  • Bean 对象初始化后,循环调用实现了 BeanPostProcessor 接口的后初始化方法(postProcessAfterInitialization)。
  • 容器关闭时,执行 Bean 对象的销毁方法,顺序是:@PreDestroy 注解方法、DisposableBean 接口方法、destroy-method。

3.一句话概述

spring bean的生命周期主要会经过3个关键步骤,即实例化对象、给对象进行属性注入、对象初始化 ,只不过在进行对象初始化 之前或之后有可能会进行一些自定义的处理,比如对象实现了BeanNameWare接口,可以用来设置bean对象的名称,也比如对象实现了

BeanPostProcessor接口,就可以增加一些自定义的逻辑在该接口的两个方法中。当然对象初始化完成后,最后还可以增加对象的销毁方法,让对象在销毁时进行一些自定义的操作。

相关推荐
java_t_t17 分钟前
Java属性解析映射到Json
java·json
先做个垃圾出来………38 分钟前
Python位运算及操作
java·前端·python
你怎么知道我是队长1 小时前
C语言---字符串
java·c语言·算法
开心猴爷1 小时前
Perfdog 成本变高之后,Windows 上还能怎么做 iOS APP 性能测试
后端
rannn_1112 小时前
【Java项目】中北大学Java大作业|电商平台
java·git·后端·课程设计·中北大学
苏三说技术2 小时前
日常工作中如何对接第三方系统?
后端
凌览2 小时前
0成本、0代码、全球CDN:Vercel + Notion快速搭建个人博客
前端·后端
决战灬2 小时前
Hologres高性能写入
后端
资生算法程序员_畅想家_剑魔2 小时前
Java常见技术分享-26-事务安全-锁机制-常见的锁实现
java·开发语言
座山雕~2 小时前
spring
java·后端·spring