Spring BeanFactoryPostProcessor

在通過BeanFactoryPostProcessor來手動干預springbean加載狀態(tài)時,有兩點需要注意:

  1. 是否需要實現PriorityOrdered接口。
    spring處理BeanFactoryPostProcessor類型的bean,主要是通過AbstractApplicationContext中的invokeBeanFactoryPostProcessors來處理,主要代碼如下:


    image.png

    實現了PriorityOrdered接口的Processor會放在第一優(yōu)先級隊列中執(zhí)行,并且通過設置優(yōu)先級,可以執(zhí)行Processor的執(zhí)行順序(注意:Spring自帶的Processor都被默認設置了最低優(yōu)先級)。

  2. 是否需要初始化bean
    ListableBeanFactory中有個重要的接口getBeanNamesForTypes,該接口支持兩種傳參類型,若不希望在調用接口后會觸發(fā)bean的初始化工作,需使用String[] getBeanNamesForType(Class type, boolean includeNonSingletons, boolean allowEagerInit),并將最后的allowEagerInit參數置為true。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,958評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • 第一:移動互聯網的推廣是重點 移動互聯網的趨勢已經勢不可擋,所以我們要在移動端的推廣加大力氣了!那么移動端最大的窗...
    包云東閱讀 212評論 0 2
  • 小川叔,你好!這是我第一次給你寫信,向你求救,現在的我真的很無措!說說我的情況吧!我12年參加實習工作,13年畢業(yè)...
    小川叔閱讀 426評論 2 4