基於Xml 的IOC 容器 分配解析策略

2021-10-10 13:38:51 字數 669 閱讀 9820

xmlbeandefinitionreader 類中的doloadbeandefinition()方法是從特定xml 檔案中實際載入bean 配置資源的方法,該方法在載入bean 配置資源之後將其轉換為document 物件,接下來呼叫registerbeandefinitions() 啟動spring ioc 容器對bean 定義的解析過程,

registerbeandefinitions()方法原始碼如下:

//按照spring的bean語義要求將bean定義資源解析並轉換為容器內部資料結構

public int registerbeandefinitions(document doc, resource resource) throws beandefinitionstoreexception

bean 配置資源的載入解析分為以下兩個過程:

首先,通過呼叫xml 解析器將bean 配置資訊轉換得到document 物件,但是這些document 物件並沒有按照spring 的bean 規則進行解析。這一步是載入的過程

其次,在完成通用的xml 解析之後,按照spring bean 的定義規則對document 物件進行解析,其解析過程是在介面beandefinitiondocumentreader 的實現類defaultbeandefinitiondocumentreader 中實現。

基於Xml 的IOC 容器 解析配置檔案路徑

獲取resource的具體實現方法 override public resource getresource string location 如果是類路徑的方式,那需要使用classpathresource 來得到bean 檔案的資源物件 if location.startswith else if...

基於Xml 的IOC 容器 獲得配置路徑

首先,呼叫父類容器的構造方法 super parent 方法 為容器設定好bean 資源載入器。靜態初始化塊,在整個容器建立過程中只執行一次 static this.resourcepatternresolver getresourcepatternresolver this setparent p...

基於Xml 的IOC 容器 載入 bean 元素

bean 配置資訊中的和元素解析在defaultbeandefinitiondocumentreader 中已經完成,對bean 配置資訊中使用最多的元素交由beandefinitionparserdelegate 來解析,其解析實現的原始碼如下 解析元素的入口 nullable public be...