一、doGetBean 圖例
doGetBean 啓程
org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean
實例化前預處理
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBean(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[])
實例化
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean
實例化後填充屬性值
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean
實例化填充後初始化 initializeBean 流程
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#initializeBean(java.lang.String, java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition)
二、參考
Spring循環依賴及解決方式
Spring BeanWrapper分析
Spring 手動註冊bean
Spring - lookup-method方式實現依賴注入
Spring生成bean的過程
Spring擴展點總結
三、總結
spring 代碼較多,看着也比較頭疼,可能看着看着就忘了… 畢竟開發框架、中間件 擴展的機會還是比較少,但是對於spring的使用還是必須銘記於心,本文主要是給自己總結~沒事的時候回來看看。-- 2020-06-22(農曆五月過兩天) 於杭州