手寫SpringIOC 實現原理

2021-10-01 15:16:54 字數 2115 閱讀 2847

spring ioc

指的是控制反轉,ioc容器負責例項化、定位、配置應用程式中的物件及建立這些物件間的依賴。交由spring來管理這些,實現解耦

使用反射機制+xml技術

手寫spring專題 xml方式注入bean

/** *

手寫spring

專題xml

方式注入

bean

* *

*/publicclass

// xml

路徑位址

privatestring

xmlpath;

public

xmlpath)

publicobject getbean(string

beanid

)throwsexception

// 2.

使用beanid

查詢對應的

class

位址 string

beanclass

= findxmlbyidclass(

elements

, beanid

);if(stringutils.isempty(

beanclass

)) // 3.

使用反射機制初始化,物件

class<?>

forname

= class.forname(

beanclass

);returnforname

.newinstance(); }

// 讀取配置檔案資訊

publiclistreaderxml()throwsdocumentexception

document

read

= saxreader

.read(getclassxmlinputstream(

xmlpath

)); //

獲取根節點資訊

element

rootelement

= read

.getrootelement();

// 獲取子節點

list

elements

= rootelement

.elements()

;if(

elements

==null||

elements

.isempty())

returnelements; }

// 使用beanid

查詢該class

位址publicstring findxmlbyidclass(list

elements

, string

beanid

)throwsexception

if(!

beanidvalue

.equals(

beanid

)) //

獲取class

位址屬性

string

classpath

= element

.attributevalue(

"class"

);if(!stringutils.isempty(

classpath

)) }

returnnull; }

// 讀取

xml配置檔案

publicinputstream getclassxmlinputstream(string

xmlpath)

} 測試:public class test002

}

Spring IOC實現原理

ioc 控制反轉,通俗來說就是把物件的建立不是通過new的方式實現,而是交給spring配置檔案來建立類的物件。開發思想 高內聚,低耦合 ioc實現原理 需求 實現在userservlet中來得到userservice類的物件 第一步 建立xml配置檔案,配置要建立的物件類userservice 第...

SpringIOC實現原理

假設我們設計一輛汽車 先設計輪子,然後根據輪子大小設計底盤,接著根據底盤設計車身,最後根據車身設計好整個汽車。這裡就出現了乙個 依賴 關係 汽車依賴車身,車身依賴底盤,底盤依賴輪子。這樣的設計看起來沒問題,但是可維護性卻很低。假設設計完工之後,上司卻突然說根據市場需求的變動,要我們把車子的輪子設計都...

手寫spring IOC容器

基本思路 解析xml配置檔案 根據配置的生成相應的物件 將物件存入ioc容器 ioc容器實現 1.0 encoding utf 8 address class com.example.xmlsax reader.entity.address city value fuzhou user class ...