【Spring】Bean的生命周期

Bean的生命周期



Bean的生命周期

直接写个程序看一下,首先创建一个Person类:
这里写图片描述

在配置文件中声明一个person的Bean:
这里写图片描述

在Bean的声明里设置init-method和destroy-method属性,为Bean指定初始化和销毁方法,直接运行一下:
这里写图片描述
通过结果可以看出首先执行的是构造器,然后执行属性setter方法,再执行指定的初始化方法init,然后Bean就可以使用了,然后关闭IOC容器后,又执行了指定的销毁方法destroy。总结来说:
1. 通过构造器或者工厂方法创建Bean实例
2. 为Bean的属性设置值和对其他Bean的引用‘
3. 调用Bean的初始化方法
3. Bean可以使用了
4. 当容器关闭时,调用Bean的销毁方法

Bean的后置通知处理器

Bean的后置处理器允许在调用初始化方法的前后进行对Bean的额外处理,只要实现BeanPostProcessor接口,这个接口里只要实现两个方法,postProcessBeforeInitialization:在Bean的初始化方法执行之前执行,postProcessAfterInitialization:在Bean的初始化方法执行之后才执行。
我们需要自己写一个类来实现BeanPostProcessor接口,实现2个方法:
这里写图片描述
注意最后要把bean对象返回,当然这里你可以修改对象的属性,甚至可以new一个新的对象进行替换。
然后还要在配置文件中声明一个Bean,这里不需要写id,Spring可以自动识别,就这么配置就可以:
这里写图片描述

最后让我们运行一下:
这里写图片描述

所以只是在Bean的初始化前后加了两个方法,生命周期就变成了这样:
1. 通过构造器或者工厂方法创建Bean实例
2. 为Bean的属性设置值和对其他Bean的引用
3. 调用postProcessBeforeInitialization方法
4. 调用Bean的初始化方法
5. 调用postProcessAfterInitialization方法
6. Bean可以使用
7. 当容器关闭时,调用Bean的销毁方法

注:Bean的后置处理器是针对所有Bean的,如果要针对对应的Bean设置,那就要在方法的内部进行判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值