SpringBean的生命周期

本文详细介绍了Spring中Bean的生命周期,包括实例化、依赖注入、初始化、使用和销毁五个阶段。在初始化阶段,涉及了各种Aware接口、BeanPostProcessor接口以及InitializingBean接口的调用。在使用阶段,Bean可供使用,直到最后的销毁阶段,执行DisposableBean接口或自定义销毁方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring中Bean的生命周期包含五个阶段:
实例化、依赖注入、初始化、使用、销毁

一、实例化: 当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚末初始化的依赖时,容器就会调用doCreateBean()方法进行实例化,实际上就是 通过反射的方式创建出一个bean对象

二、依赖注入: 给这个Bean对象进行属性填充,也就是注入这个Bean依赖的其它bean对象

三、初始化:
属性填充之后,会进行bean的初始化,初始化将会检测该bean是否实现三种Aware接口,BeanPostProcessor接口,InitializingBean接口并进行对应的操作:

1、三种Aware接口:ApplicationContextAware接口、BeanNameAware接口、BeanFactory接口,这些Aware类型的接口,可以让我们拿到Spring容器的些资源:BeanName、工厂对象BeanFactory等

1> 当bean实现ApplicationContextAware接口,Spring会调用setApplicationContext()方法,将bean所在应用上下文引用传入进来。

2>当bean实现了BeanNameAware接口,就必须实现BeanNameAware的setBeanName()方法,Spring会将Bean的Id传递给setBeanName()方法

3>当bean实现了BeanFactory接口,Spring会调用setBeanFactory方法,将BeanFactory容器实例传入

2、执行了Aware接口的方法之后,如果Bean实现了BeanPostProcessor接口(bean后置处理接口),那么将会先执行postProcessorBeforeInitialization()“后置处理在初始化之前”方法

3、判断Bean如果实现了InitializingBean接口,将会执行lnitializingBean的afeterPropertiesSet()初始化方法;

4、执行用户自定义的初始化方法,如init-method等;

5、如果第二步那里,Bean实现了BeanPostProcessor接口,那么在执行自定义初始化方法之后,将会执行postProcessorAfterInitalization()“后置处理在初始化之后”方法

四、使用
这个阶段讲bean保存到容器中可以被使用了,当Bean不再需要时,就会执行销毁阶段

五、销毁
会判断Bean是否实现了DisposableBean接口,或者配置了自定义的destroy-method等自定义的销毁方法,如果有的话,则会自动调用其配置的销毁方法;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值