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

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

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

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

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

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

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

最終注冊(cè)MergedBeanDefinitionPostProcessor類型的BeanPostProcessor

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

到此這篇關(guān)于Spring容器的創(chuàng)建過(guò)程之如何注冊(cè)BeanPostProcessor詳解的文章就介紹到這了,更多相關(guān)注冊(cè)BeanPostProcessor內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Spring?BeanPostProcessor后處理器源碼解析
- 關(guān)于Spring BeanPostProcessor的執(zhí)行順序
- Spring BeanPostProcessor(后置處理器)的用法
- SpringBoot之通過(guò)BeanPostProcessor動(dòng)態(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)目的搶單功能,并提供了一個(gè)完整的代碼示例,以便讀者能夠直接運(yùn)行和參考,感興趣的朋友一起看看吧2024-12-12
SpringBoot中對(duì)應(yīng)2.0.x版本的Redis配置詳解
這篇文章主要為大家介紹了SpringBoot中對(duì)應(yīng)2.0.x版本的Redis配置詳解,文中的實(shí)現(xiàn)步驟講解詳細(xì),感興趣的小伙伴們可以了解一下2022-06-06
Spring init-method與destroy-method屬性的用法解析
這篇文章主要介紹了Spring init-method與destroy-method屬性的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教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)簡(jiǎn)單的迷宮游戲詳解
迷宮游戲作為經(jīng)典的小游戲,一直深受大家的喜愛。本文小編將為大家詳細(xì)介紹一下如何用Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的迷宮小游戲,感興趣的可以動(dòng)手試一試2022-02-02
Java利用序列化實(shí)現(xiàn)對(duì)象深度clone的方法
這篇文章主要介紹了Java利用序列化實(shí)現(xiàn)對(duì)象深度clone的方法,實(shí)例分析了java序列化及對(duì)象克隆的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07

