Spring BeanPostProcessors

6 篇文章 0 订阅

1.Spring BeanPostProcessors概述

通常,你会发现自己处于这样一种情况,你需要在Spring框架实例化Bean执行一些预处理和后处理。Spring提供了BeanPostProcessor接口,它定义了一个回调方法来实现这个功能。

实现BeanPostProcessor接口的类需要在ApplicationContextSpring Bean配置文件)中定义,并将应用于应用程序上下文中定义的所有Bean

如果Bean配置文件中配置了多个BeanPostProcessor实现,并且它们相互依赖(一个实现的处理对象可以是另一个实现的输入)那么BeanPostProcessor的顺序就很重要。为了控制执行后处理器的顺序,实现BeanPostProcessor的类需要实现Ordered接口并实现其getOrder方法来定义顺序。

BeanPostProcessor接口为我们提供了两个扩展点:

  • Spring Container实例化对象之后,但在初始化之前执行自定义处理
  • 初始化后执行自定义处理。

BeanPostProcessorsBean(或对象)实例进行操作。这意味着Spring IoC容器实例化一个Bean实例,然后BeanPostProcessor接口完成他们的工作。
注意:与Bean相关的initdestroy方法与bean post processors不同。BeanPostProcessors对于所有Bean都很常见,并且在自定义init方法之前执行。

2.BeanPostProcessor接口

BeanPostProcessor接口在org.springframework.beans.factory.config.BeanPostProcessor包下定义,并有两个回调方法
a)postProcessBeforeInitialization - 在对象实例化之后但在初始化之前调用此方法。方法的签名是:

public Object postProcessBeforeInitialization(Object bean, String beanName)
throwsBeansException

b)postProcessAfterInitialization - 在对象初始化后调用此方法。方法的签名是:

public Object postProcessAfterInitialization(Object bean, String beanName)
throwsBeansException
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值