
關鍵源碼方法(強烈建議自己去撸一遍)
org.springframework.context.support.AbstractApplicationContext#refresh(入口)
org.springframework.context.support.AbstractApplicationContext#finishBeanFactoryInitialization(初始化單例對象入口)
org.springframework.beans.factory.config.ConfigurableListableBeanFactory#preInstantiateSingletons(初始化單例對象入口)
org.springframework.beans.factory.support.AbstractBeanFactory#getBean(java.lang.String)(萬惡之源,擷取并建立Bean的入口)
org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean(實際的擷取并建立Bean的實作)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#getSingleton(java.lang.String)(從緩存中嘗試擷取)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBean(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[])(執行個體化Bean)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean(執行個體化Bean具體實作)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBeanInstance(具體執行個體化過程)
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry#addSingletonFactory(将執行個體化後的Bean添加到三級緩存)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean(執行個體化後屬性注入)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#initializeBean(java.lang.String, java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition)(初始化入口)
去網上看部落格的時候,找到了幾張比較好的圖,這裡貼下友善大家了解吧~
來源:https://www.jianshu.com/p/6c359768b1dc
- END -
我把Spring AOP和IOC的知識點都整理成思維導圖了