這個resource
定位指的是
beandefinition
的資源定位,它由
resourceloader
通過統一的
resource
介面來完成,這個
resource
對各種形式的
beandefinition
的使用都提供了統一介面。對於這些
beandefinition
的存在形式,相信大家都不會感到陌生。比如,在檔案系統中的
bean
定義資訊可以使用
filesystemresource
來進行抽象;在類路徑中的
bean
定義資訊可以使用前面提到的
classpathresource
來使用,等等。這個定位過程類似於容器尋找資料的過程,就像用水桶裝水先要把水找到一樣。
這個載入過程是把使用者定義好的
bean
表示成ioc
容器內部的資料結構,而這個容器內部的資料結構就是
beandefinition
。下面介紹這個資料結構的詳細定義。具體來說,這個
beandefinition
實際上就是
pojo
物件在ioc
容器中的抽象,通過這個
beandefinition
定義的資料結構,使
ioc容器能夠方便地對
pojo
物件也就是
bean
進行管理。
這個過程是通過呼叫
beandefinitionregistry
介面的實現來完成的。這個註冊過程把載入過程中解析得到的
beandefinition
向ioc
容器進行註冊。通過分析,我們可以看到,在
ioc容器內部將
beandefinition
注入到乙個
hashmap
中去,ioc
容器就是通過這個
hashmap
來持有這些
beandefinition
資料的。
IOC容器的初始化過程 this
this register componentclasses refresh 3.點選this 方法 4.首先會呼叫無參建構函式 7.以及defaultresourceloader的無參構造方法建立預設資源載入器 8.最後再初始化註解模式下的beandefinition讀取器,以及類路徑下面的bea...
IOC 容器初始化小結
總結一下ioc 容器初始化的基本步驟 1 初始化的入口在容器實現中的refresh 呼叫來完成。2 對bean 定義載入ioc 容器使用的方法是loadbeandefinition 其中的大致過程如下 通過resourceloader 來完成資源檔案位置的定位,defaultresourceload...
Spring容器初始化過程
1.preparerefresh 初始化placeholder source,校驗xml檔案 2.建立bean容器,載入並註冊bean。bean並沒有完成初始化,bean例項化未完成 初始化乙個defautllistablebeanfactory,載入beandefintion到beanfactor...