spring原始碼吧 一 beans篇章

2021-09-23 23:58:17 字數 1805 閱讀 9957

兩個核心類

1.defaultlistablebeanfactory

xmlbeanfactory 繼承向 defaultlistablebeanfacto1y,對它進行了擴充套件主要用於從 xml 文件中讀

取 beandefinition ,對於註冊及獲取 bean 都是使用從父類 defaultlistablebeanfactory 繼承的方

法去實現,而唯獨與父類不同的個性化實現就是增加了 xmlbeandefinitionreader 型別的 reader

屬性。 在 xm!beanfactory 中主要使用 reader 屬性對資源檔案進行讀取和註冊

beanfactory :定義 獲取 bean 及 bean 的各種屬性 。

defauits ingletonbeanregistry :對介面 si ngletonbeanregistry 各函式的實現。

beandefinitionregistry : 定義對 beandefinition 的各種增刪改操作 。

defaultlistablebeanfactory : 綜合上面所有功能, 主要是對 bean 註冊後的處理

2.xmlbeandefinitionreade

從 xmlbeandefinitionreader 中梳理一下資源檔案讀取、解析及註冊的大致脈絡

檢視各個類的功能:
spring 對其內部使用到的資源實現了自己的抽象結構 : resource 介面封裝底層資源繼承了介面inputstreamreader,裡面可以獲取到inputstream

對不同**的資源檔案都有相應的 resource 實現 : 檔案( filesystemresource ) 、 classpath

資源( classpathresource )、 url 資源( ur!resource )、 inputstream 資源( inputstreamresource ) 、

byte 陣列( bytearrayresource )等

public class xmlbeanfactory extends defaultlistablebeanfactory 

public xmlbeanfactory(resource resource, beanfactory parentbeanfactory) throws bean***ception

//1public abstractautowirecapablebeanfactory()

現在對上面做個總結:

l . 封裝資源檔案 。當 進入 xrnlbean.definitionreader 後首先對 參 數 resource 使用

encodedresource 類進行封裝 。

public class xmlbeandefinitionreader extends abstractbeandefinitionreader

public int loadbeandefinitions(resource resource) throws beandefinitionstoreexception

public class xmlbeandefinitionreader extends abstractbeandefinitionreader

protected int doloadbeandefinitions(inputsource inputsource, resource resource)

return count;

} }

spring原始碼之bean包

測試 如下 建立乙個teacher類 public class teacher public void setdescription string description 在包下建立乙個spring.xml 在 測試 suppresswarnings deprecation public class...

spring原始碼分析 一 bean的註冊

a xml註冊獲取 system.out.println bean b 註解方式註冊的bean system.out.println bean configuration 告訴spring這是乙個配置類 public class mainconfig configuration components...

Spring原始碼之 Bean註解解析

spring bean是乙個方法級別的註解,用於產生乙個被spring ioc容器所管理的bean。通常情況下,bean可以與 configuration和 component註解一起使用 configuration和 component是方法級別的註解 在預設情況下 bean註解所產生的bean是...