Spring之BeanPostProcessor

本文深入探讨了BeanPostProcessor在Spring框架中的作用,包括其如何允许自定义修改bean实例,检查标记接口,以及用代理包装bean。同时介绍了ApplicationContexts如何自动检测并应用BeanPostProcessor,以及普通beanfactory如何注册post-processors。
摘要由CSDN通过智能技术生成
简介

它是一个Factory hook,允许自定义修改新的bean实例,例如 检查标记接口或用代理包装它们

ApplicationContexts可以在其bean definitions中自动检测BeanPostProcessor bean,并将它们应用于随后创建的任何bean。 普通bean factory允许对post-processors进行编程注册,适用于通过该factory创建的所有bean

通常,通过marker interfaces等填充beanpost-processors将实现{@link #postProcessBeforeInitialization},而使用代理包装beanpost-processors通常会实现{@link #postProcessAfterInitialization}

方法简介
Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException

在任何bean initialization callbacks之前(例如InitializingBean{@code afterPropertiesSet}或自定义init-method方法),将此BeanPostProcessor应用于给定的new bean instance。这个bean已经填充了属性值。 返回的bean实例可能是原始实例的wrapper(包装器)。


Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException

在任何bean initialization callbacks之后(如InitializingBean{@code afterPropertiesSet}或自定义init-method方法),将此BeanPostProcessor应用于给定的新bean实例。 bean已经填充了属性值。返回的bean实例可能是原始实例的包装器。

对于FactoryBean,将为FactoryBean实例和FactoryBean创建的对象(从Spring 2.0开始)调用此回调。 后处理器可以通过相应的{@code bean instanceof FactoryBean}检查来决定是应用于FactoryBean还是应用于创建的对象。

与所有其他BeanPostProcessor回调相比,在{@link InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation}方法触发的短路之后,也将调用此回调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值