Spring是如何載入Xml檔案的

2021-08-11 06:43:25 字數 1308 閱讀 8185

這是乙個很有意思的話題,在我剛學習spring框架的時候是使用junit測試配置的datasource是否配置成功,那時候要寫一段這樣的**來載入我們配置好的xml檔案:

@test

public void loadxml()

當然我們現在很少使用這種方式手動去載入乙個xml檔案了,現在大部分的spring專案大部分是使用springboot了,減少了不少之前springmvc專案中各種繁雜的配置項,以後就是springboot的天下了,當然這個另作一說了;

最近看了一些spring底層執行的書,對著一塊也是有了更深入的了解,spring是如何載入properties檔案和xml檔案的;

1.defaultlistablebeanfactory類

package org.springframework.beans.factory.support;下的

defaultlistablebeanfactory類是這是spring註冊及載入的核心部分,是spring註冊及載入bean的預設的實現,而xmlbeanfactory是繼承自defaultlistablebeanfactory他們的區別是xmlbeanfactory中有乙個自己定義的xml讀取器(using an xmlbeandefinitionreader),而這個讀取的方式是根據xml document方式來實現的;

當然這就涉及到xml解析的兩個方式:一種就是當前說到的這種xml doucument的方式,解析的過程中是通過讀取xml doucument 這相當於xml文件的約定格式的規範;

上面的方法就是xmlbeandefinitionreader中載入document的方法

還有一種方式是讀取當前文件自己自帶的結構格式規範,來解析xml檔案,感興趣的話可以自己下去查詢一下;

2.xmlbeandefinitionreader類

載入過程:

1.使用resourceloader將資源檔案載入到對應的resource

2.通過documentloader對檔案進行轉換,將resource檔案轉換成document

3.通過實現的介面對document進行解析,使用beandefinitionparserdelegate對element進行解析

這是我在網上找的的xmlbeanfactory執行的時序圖:

spring 中載入xml配置檔案的方法

載入這些容器的配置檔案的xml有一下幾種常見的方法 1 引用資源 用xmlbeanfactory 不能實現多個檔案相互引用 從factory中獲取相應資源檔案中的bean,但是這種bean讀不到引用了其他檔案中的bean!注意 在2 3的載入方式中可以載入多個配置檔案,獲取到 abstractdao...

Spring中載入XML配置檔案的方法

載入這些容器的配置檔案的xml有以下幾種常見的方法 1 引用資源用xmlbeanfactory 不能實現多個檔案相互引用 beanfactory factory new xmlbeanfactory resource 從factory中獲取相應資源檔案中的bean,但是這種bean讀不到引用了其他檔...

spring 中載入xml配置檔案的方式

spring 中載入xml配置檔案的方式,好像有3種,xml是最常見的spring 應用系統配置源。spring中的幾種容器都支援使用xml裝配bean,包括 xmlbeanfactory 一 xmlbeanfactory 引用資源 beanfactory factory new xmlbeanfa...