IOC 容器初始化小結

2021-10-25 10:30:07 字數 799 閱讀 7328

總結一下ioc 容器初始化的基本步驟:

1、初始化的入口在容器實現中的refresh()呼叫來完成。

2、對bean 定義載入ioc 容器使用的方法是loadbeandefinition(),其中的大致過程如下:通過resourceloader 來完成資源檔案位置的定位,defaultresourceloader是預設的實現,同時上下文本身就給出了resourceloader 的實現,可以從類路徑,檔案系統,url 等方式來定為資源位置。如果是xmlbeanfactory 作為ioc 容器,那麼需要為它指定bean 定義的資源,也就是說bean 定義檔案時通過抽象成resource 來被ioc 容器處理的, 容器通過beandefinitionreader 來完成定義資訊的解析和bean 資訊的註冊, 往往使用的是xmlbeandefinitionreader 來解析bean 的xml 定義檔案- 實際的處理過程是委託給beandefinitionparserdelegate 來完成的,從而得到bean 的定義資訊,這些資訊在spring 中使用beandefinition 物件來表示-這個名字可以讓我們想到loadbeandefinition(),registerbeandefinition()這些相關方法。它們都是為處理beandefinitin 服務的,容器解析得到beandefinition 以後,需要把它在ioc 容器中註冊,這由ioc 實現beandefinitionregistry 介面來實現。註冊過程就是在ioc 容器內部維護的乙個hashmap 來儲存得到的beandefinition 的過程。這個hashmap 是ioc 容器持有bean 資訊的場所,以後對bean 的操作都是圍繞這個hashmap 來實現的。

IoC容器的初始化過程

這個resource 定位指的是 beandefinition 的資源定位,它由 resourceloader 通過統一的 resource 介面來完成,這個 resource 對各種形式的 beandefinition 的使用都提供了統一介面。對於這些 beandefinition 的存在形式,相...

IOC容器的初始化過程 this

this register componentclasses refresh 3.點選this 方法 4.首先會呼叫無參建構函式 7.以及defaultresourceloader的無參構造方法建立預設資源載入器 8.最後再初始化註解模式下的beandefinition讀取器,以及類路徑下面的bea...

Spring容器初始化過程

1.preparerefresh 初始化placeholder source,校驗xml檔案 2.建立bean容器,載入並註冊bean。bean並沒有完成初始化,bean例項化未完成 初始化乙個defautllistablebeanfactory,載入beandefintion到beanfactor...