一、Bean裝載過程
1、第一步是加載Bean配置文件
Xml默認讀取器類(XmlBeanDefinitionReader)加載配置Bean定義的配置文件。
2、第二步是解析Bean配置文件
由默認的文檔讀取器類(DefaultBeanDefinitionDocumentReader)對已經加載Bean的配置文件進行解析,接着解析成Element對象,依據每個Element對象解析處理Bean的配置屬性(id、class、懶加載、單例/多例、init、銷毀等相關配置Bean屬性)。
3、第三步是注冊到Spring的IOC容器中
由BeanFactory類(DefaultListableBeanFactory)對Bean的class屬性反射機制以及其他屬性來構建Bean對象來注冊到IOC容器中。

相關Spring Bean的加載過程:
http://www.manongjc.com/article/112368.html
https://www.cnblogs.com/bj-xiaodao/p/10777396.html
二、Bean的獲取與創建(實例化)過程
1、實例化uBean的4種方式
(1)使用構造器實例化
(2)使用靜態工廠方式實例化
(3)使用實例工廠方法實例化
(4)使用setter方式實例化
相關鏈接
https://www.jianshu.com/p/646c1f657144
2、創建Bean的過程
(1)首先從 getBean() 方法開始創建過程,getBean()有一系列的重載方法,最終都是調用doGetBean() 方法。
(2)先嘗試判斷創建的這個Bean是否單例,如果是單例,再次判斷緩存中是否存在這個Bean實例,存在就直接從緩存中獲取這個Bean,通過getSingleton()方法嘗試從緩存中獲取單例bean。
(3)如果創建的這個Bean是多例,或者是單例並且在緩存中沒有,這時候執行創建Bean的doCreateBean()方法。
(4)執行doCreateBean()方法,並由createBeanInstance()方法創建Bean。
(5)createBeanInstance()方法使用反射實例化Bean,最后執行populateBean()方法主要給 Bean 填充依懶與屬性的注入。
圖解

相關鏈接
https://blog.csdn.net/laravelshao/article/details/82318063
