1. 程式人生 > 其它 >BeanPostProcessor (java後置處理器)介紹

BeanPostProcessor (java後置處理器)介紹

BeanPostProcessor 是Spring框架核心介面之一。

瞭解這個介面的作用對於我們詳細瞭解Spring框架bean載入順序十分重要。

Spring中Bean的例項化過程圖示

BeanPostProcessor介面原始碼

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; } }

只有二個方法,我們需要實現這二個方法,並且返回bean,不能返回null。

BeanPostProcessor介面作用

如果我們想在Spring容器中完成bean例項化、配置以及其他初始化方法前後要新增一些自己邏輯處理。我們需要定義一個或多個BeanPostProcessor介面實現類,然後註冊到Spring IoC容器中。

postProcessBeforeInitialization方法在自定義的初始化方法 之前執行。
postProcessAfterInitialization方法在自定義的初始化方法 之後執行。

多個後置處理器的執行順序是按照他們的定義順序來執行,當然我們也可以指定他們的執行順序。

在Spring機制中可以指定後置處理器呼叫順序,通過讓BeanPostProcessor介面實現類實現Ordered介面getOrder方法,該方法返回一整數,預設值為 0,優先順序最高,值越大優先順序越低。

莫聽穿林打葉聲,何妨吟嘯且徐行!!!