Spring后置處理器(PostProcessor)


 

1.BeanPostProcessor

 
         
/**
* BeanPostProcessor為我們提供了兩個方法,我們可以在Spring實例化Bean的前后實現我們的特定需求。
* (Spring AOP就是根據BeanPostProcessor建立與IOC的聯系)
*/
public interface BeanPostProcessor {

    @Nullable
    default Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

    @Nullable
    default Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

}
我們都知道,實現ApplicationContextAware接口,Spirng初始化Bean時會調用setApplicationContext方法,幫助我們注入ApplicationContext對象。其實這個功能就是利用BeanPostProcessor實現的,具體可以看源碼參考Spirng的 ApplicationContextAwareProcessor這個類

 

2.BeanFactoryPostProcessor

/** 
* 實現該接口,可以在Spring的Bean創建之前修改Bean定義的屬性。
*/

@FunctionalInterface
public interface BeanFactoryPostProcessor { void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException; }

簡單的說就是Spring提供了一個接口,這個接口可以讓我們修改Spring內部的BeanFactory。(在這之前要請先了解什么是BeanFactory,並了解FactoryBean和BeanFactory的區別。

可參考:https://www.cnblogs.com/MichaelPL/p/11631808.html

 

 

 

 

 

BeanDefinitionRegistryPostProcessor
DestructionAwareBeanPostProcessor
InstantiationAwareBeanPostProcessor
MergedBeanDefinitionPostProcessor
RequiredAnnotationBeanPostProcessor

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM