Spring容器的創(chuàng)建過程之如何注冊BeanPostProcessor詳解
注冊BeanPostProcessor
refresh()調(diào)用registerBeanPostProcessors(beanFactory)方法,注冊Bean的后置處理器,后置處理器是用來攔截bean創(chuàng)建過程的。

不同接口類型的BeanPostProcessor,即繼承了BeanPostProcessor接口的子接口,在Bean創(chuàng)建前后的執(zhí)行時機是不一樣的
BeanPostProcessorDestructionAwareBeanPostProcessorInstantiationAwareBeanPostProcessorSmartInstantiationAwareBeanPostProcessorMergedBeanDefinitionPostProcessor
首先獲取所有的BeanPostProcessor

后置處理器都默認可以通過PriorityOrdered、Ordered這兩個接口來指定執(zhí)行優(yōu)先級

先注冊實現(xiàn)了priorityOrdered優(yōu)先級接口的BeanPostProcessor,調(diào)用registerBeanPostProcessors()方法進行注冊

registerBeanPostProcessors()方法調(diào)用addBeanPostProcessor()方法將BeanPostProcessor添加到BeanFactory中

再注冊實現(xiàn)了Ordered優(yōu)先級接口的BeanPostProcessor

最后注冊沒有實現(xiàn)任何優(yōu)先級接口的BeanPostProcessor

最終注冊MergedBeanDefinitionPostProcessor類型的BeanPostProcessor

還會注冊一個ApplicationListenerDetector來在Bean創(chuàng)建完成后檢查是否ApplicationListener,如果是,就會把這個監(jiān)聽器bean放在容器中保存起來

到此這篇關于Spring容器的創(chuàng)建過程之如何注冊BeanPostProcessor詳解的文章就介紹到這了,更多相關注冊BeanPostProcessor內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- Spring?BeanPostProcessor后處理器源碼解析
- 關于Spring BeanPostProcessor的執(zhí)行順序
- Spring BeanPostProcessor(后置處理器)的用法
- SpringBoot之通過BeanPostProcessor動態(tài)注入ID生成器案例詳解
- 詳解使用Spring的BeanPostProcessor優(yōu)雅的實現(xiàn)工廠模式
- Spring中的后置處理器BeanPostProcessor詳解
- Spring BeanPostProcessor接口使用詳解
- 解析Java的Spring框架的BeanPostProcessor發(fā)布處理器
- spring中BeanPostProcessor的作用和使用注意事項
相關文章
Java網(wǎng)約車項目實戰(zhàn)之實現(xiàn)搶單功能詳解
本文詳細介紹了如何使用Java實現(xiàn)網(wǎng)約車項目的搶單功能,并提供了一個完整的代碼示例,以便讀者能夠直接運行和參考,感興趣的朋友一起看看吧2024-12-12
SpringBoot中對應2.0.x版本的Redis配置詳解
這篇文章主要為大家介紹了SpringBoot中對應2.0.x版本的Redis配置詳解,文中的實現(xiàn)步驟講解詳細,感興趣的小伙伴們可以了解一下2022-06-06
Spring init-method與destroy-method屬性的用法解析
這篇文章主要介紹了Spring init-method與destroy-method屬性的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08

