BeanPostProcessor接口(Bean后处理器)

Spring框架提供了很好的扩展性,除了可以与各种第三方框架良好整合外,其IOC容器也允许开发者进行扩展,这种扩展甚至无需实现BeanFactory或ApplicationContext接口,而是允许通过两个后处理器对IOC容器进行扩展。Spring提供了两种常用的后处理器:

名称描述
Bean后处理器这种后处理器会对容器中的Bean进行后处理,对Bean功能进行额外增强
容器后处理器这种后处理器对IOC容器进行后处理,用于增强容器功能

Bean后处理器:

Bean后处理器是一种特殊的Bean,这种特殊Bean并不对外提供服务,它甚至可以无须id属性。它主要负责对容器中的其他Bean执行后处理,例如为容器中的目标Bean生成代理等,这种Bean被称为Bean后处理器。

Bean后处理器会在Bean实例创建成功之后,对Bean实例进行进一步的增强处理。

Bean后处理器必须实现BeanPostProcessor接口
 

接口方法描述
Object postProcessBeforeInitialization(Object bean,String name) throws BeansExceptionbean参数表示系统即将进行后处理的Bean实例,name参数是该Bean实例的名字
Object postProcessAfterInitialization(Object bean,String name) throws BeansExceptionbean参数表示系统即将进行后处理的Bean实例,name参数是该Bean实例的名字

实现该接口的Bean后处理器必须实现这两个方法,这两个方法会对容器中的Bean进行后处理。会在目标Bean初始化之前、初始化之后分别被回调,这两个方法用于对容器中的Bean实例进行增强处理。

Bean后处理器两个方法的回调时机:

BeanPostProcessor通常用来检查标记接口,或者做如将Bean包装成一个Proxy的事情,Spring的很多工具类,就是通过Bean后处理器完成的。

下面是Spring提供的两个常用的后处理器:
 

名称描述
BeanNameAutoProxyCreator根据Bean实例的name属性,创建Bean实例的代理
DefaultAdvisorAutoProxyCreator根据提供的Advisor,对容器中所有的Bean实例创建代理

上面提供的两个Bean后处理器,都用于根据容器中配置的拦截器,创建代理Bean。代理Bean就是对目标Bean进行增强、在目标Bean的基础上进行修改得到的新Bean。

转载于:https://my.oschina.net/u/2914561/blog/759799

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值