Bean的生命周期

1. Instantiate 實(shí)例化一個(gè)Bean

2. Populate properties 設(shè)置Bean的屬性值

3*. 調(diào)用BeanNameAware的setBeanName()

4*. BeanFactoryAware的setBeanFactory()

5*. 調(diào)用BeanPostProcessors的ProcessBeforeInitialization()

6*. 調(diào)用InitializingBean的afterPropertiesSet()

7. 調(diào)用調(diào)用Bean定義的init-method

8*. BeanPostProcessors的ProcessaAfterInitialization()

[上面是Bean的創(chuàng)建階段]

[Bean的正常使用階段]

[下面是Bean的銷毀階段,例如容器銷毀的時(shí)候]

9. 調(diào)用DisposableBean的destroy()

10. 調(diào)用Bean中自定義的destroy-method

其中,Bean自身的方法包括:本身正常使用的方法,通過或者@Bean配置的init-method和destroy-method方法。在一般的開發(fā)過程中,我們只需要關(guān)心Bean自身的方法即可。剩余的都是Bean級(jí)別的生命周期的接口方法,包括BeanNameAware、BeanFactoryAware、InitializingBean和DiposableBean這些接口的方法,只有Bean實(shí)現(xiàn)了這些接口,才會(huì)在生命周期中執(zhí)行接口的相關(guān)方法。


同時(shí)感謝以下博文,寫作時(shí)作為參考借鑒。

Spring IoC的一點(diǎn)總結(jié)

長(zhǎng)話短說Spring(1)之IoC控制反轉(zhuǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容