在Spring Bean生命周期的不同阶段如何插入自定义的处理逻辑?Spring框架提供了两种类型的接口

在上一篇文章《Spring框架Bean生命周期的5个阶段及举例说明》中提到:Spring IoC容器管理Bean的生命周期,允许开发者在不同的生命周期阶段插入自定义的处理逻辑。

现在,我们要在Bean的不同的生命周期阶段插入自定义的处理逻辑,怎么插入呢?

Spring框架提供了两种类型的接口供我们实现,一类是直接应用在具体某个bean上的,一类是针对项目中全部bean的接口。

一、需要具体bean实现的接口

1、InitializingBean 接口

InitializingBean根据字面意思可以理解为正在初始化的Bean,提供可重写的初始化方法。

它定义了一个方法:

void afterPropertiesSet()


该方法在容器完成属性注入后会自动调用。

属性注入是Bean生命周期的第二个阶段。

2、DisposableBean 接口

DisposableBean接口的作用是提供可重写的销毁方法。

它定义了一个方法:

void destroy()

该方法在容器销毁 Bean 时会自动调用。执行自定义的销毁逻辑在Bean生命周期的第5个阶段。

除了实现接口,还可以使用 @PostConstruct 和 @PreDestroy 注解来定义初始化和销毁方法。

二、针对全部bean的实现接口

1、BeanFactoryPostProcessor 接口

BeanFactoryPostProcessor接口的作用是允许客户在实例化之前修改bean的描述对象BeanDefinition。

它提供了一个方法:

void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)

该方法在Bean生命周期之前调用。

2、InstantiationAwareBeanPostProcessor

InstantiationAwareBeanPostProcessor类名中有个单词Instantiation是实例化的意思,作用是提供在实例化时的执行方法。

它提供了三个方法:

Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName)

该方法在实例化 Bean 之前调用。

boolean postProcessAfterInstantiation(Object bean, String beanName)

该方法在实例化 Bean 之后调用。

PropertyValues postProcessProp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

missterzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值