1. 程式人生 > >bean的載入-獲取單例和準備建立bean

bean的載入-獲取單例和準備建立bean

1、獲取單例如果快取中不存在已經載入的單例bean,就需要重頭開始bean的載入過程,在spring中AbstracBeanFactory的 getSingleton的過載方法實現了bean的載入1.1、檢查快取是否已經載入過,spring3.2是直接使用synchronized鎖定需要同步的變數,4.0之後Object singletonObject = this.singletonObjects.get(beanName);例項了一個物件去操作1.2、檢查earlySingletonObjects裡面是否儲存beanName和bean例項之間的關係1.3、如果還是沒有,則需要根據beanName建立一個ObjectFactory,裡面用於儲存beanName和bean工廠之間的關係 beanName,ObjectFactory之間的關係,然後把值記錄到earlySingletonObjects,同時移除singletonFactories裡面beanName之間的關係
2、準備建立bean在spring中真正可以幹活的函式是以do開頭的,對於createBean也是如此,只是做一些準備工作2.1、根據設定的class屬性或者根據className來解析class2.2、對override屬性進行標記和驗證2.3、應用初始化前的處理器,解析指定bean是否存在初始化前的短路操作2.4、建立bean