简介
它是一个Factory hook
,允许自定义修改新的bean
实例,例如 检查标记接口或用代理包装它们
ApplicationContexts
可以在其bean definitions
中自动检测BeanPostProcessor bean
,并将它们应用于随后创建的任何bean
。 普通bean factory
允许对post-processors
进行编程注册,适用于通过该factory
创建的所有bean
。
通常,通过marker interfaces
等填充bean
的post-processors
将实现{@link #postProcessBeforeInitialization}
,而使用代理包装bean
的post-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}
方法触发的短路之后,也将调用此回调。