javascript
Spring5源码 - 06 Spring Bean 生命周期流程 概述 01
文章目錄
- Bean生命周期概述
- Demo
- finishBeanFactoryInitialization(beanFactory)
- 核心流程
Bean生命周期概述
說(shuō)到Spring Bean的生命周期,其實(shí)就是探究Spring Bean實(shí)例化經(jīng)歷哪些步驟了
本篇博文先給個(gè)整體的解讀,下文將從源碼上來(lái)探究Spring Bean的生命周期過(guò)程。
Demo
先跑通一個(gè)小demo
finishBeanFactoryInitialization(beanFactory)
前面幾篇博文,我們細(xì)說(shuō)了 invokeBeanFactoryPostProcessors(beanFactory);
主要是完成掃描,但bean并沒(méi)實(shí)例化,什么時(shí)候?qū)嵗哪?#xff1f;
繼續(xù)跟跟看
看到了執(zhí)行完finishBeanFactoryInitialization以后對(duì)象的構(gòu)造方法被打印了,這里只能說(shuō)明這個(gè)對(duì)象被實(shí)例化了,但是不是bean 對(duì)象也完成了實(shí)例化,這個(gè)就不好說(shuō)了,但大概率是的,所以還需要進(jìn)入到方法中繼續(xù)跟進(jìn)。
有一點(diǎn)需要明確:
Java對(duì)象不一定是bean, bean一定是一個(gè)java對(duì)象。 bean 受到spring的管理,有 自己的生命周期。
怎么能驗(yàn)證bean有么有被實(shí)例化呢?
從ac.getBean(Bean1.class) 跟進(jìn)去 , 知道找到
Object singletonObject = this.singletonObjects.get(beanName); private final Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256);那就找 ,singletonObjects .重新debug
核心流程
接下來(lái) 從源碼上分析這些流程
總結(jié)
以上是生活随笔為你收集整理的Spring5源码 - 06 Spring Bean 生命周期流程 概述 01的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring5源码 - 05 invok
- 下一篇: Spring5源码 - 07 Sprin