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

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

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

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

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

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

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

最終注冊MergedBeanDefinitionPostProcessor類型的BeanPostProcessor

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

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

