spring中的控制反轉和依賴注入

2021-08-28 18:24:57 字數 1109 閱讀 8806

ioc,這是spring核心,貫穿始終,所謂的ioc, 對於spring框架來說,就是由spring來負責控制物件的生命週期和物件間的關係

這是什麼意思,舉個例子吧,我們如何找女朋友,常見的情況是,我們到處去看**有長的漂亮的mm,

然後打聽她們的興趣愛好,qq號,**號碼,手機號碼,想辦法認識她們,這個過程是複雜深奧的,我們必須自己設計和面對每個細節,傳統的程式開發也是如此。

在乙個物件中,如果要使用另外的物件,就必須建立它(自己new乙個,或者從jndi中查詢乙個)使用完之後還要將物件銷毀。

(例如connection)物件始終和其他的介面或類藕合起來

那麼ioc是如何做的呢?

有點像通過婚介找女朋友一樣,在我和女朋友之間引入乙個第三方機構:婚介介紹所,婚介管理很多男男**的資料,我們可以向婚介提出乙個列表,告訴她們我想找乙個說明樣的女朋友,比如找的像李嘉欣,然後婚介就會按照我們的要求,提供乙個mm,我們只需要跟她去談戀愛就行了,簡單明瞭,如果婚介所給我們的人選不符合,我們就會丟擲異常,整個過程不再由我自己控制,而是婚介這樣乙個類似容器的機構來控制,spring所倡導的開發方式就是如此。

所有的類都會在spring容器中登記,告訴spring你是個什麼東西,你需要什麼東西,然後spring會在系統執行到適當的時候,把你要的東西主動跟你,同時也把你交給其他徐濤你的東西,所有的類的建立與銷毀都由spring來控制,也就是說控制物件生存週期的不再是引用它的物件,而是spring ,對於某個具體的物件而言,以前是它控制其他的物件,現在是所有的物件都被spring控制,這叫控制反轉。

ioc的乙個重點是在系統執行中。動態的向某個物件提供它所需要的其他物件,這一點事通過它的di(依賴注入)來實現,

比如物件 a 需要運算元據庫,以前我總要在a中自己編寫**來獲得connection物件,有了spring之後,我們只需要告訴spring ,a需要乙個 connection ,至於這個connection怎麼構造。

何時構造,a不需要知道,當系統執行時,spring會在適當的時候製造乙個connection,然後像打針一樣,注射到a當中

這樣就完成了各個物件之間關係的控制,a需要依賴connection才能執行,而這個connection是由 spring注入到a中,依賴注入名字就這麼來的,spring是通過反射來實現注入的。

spring中控制反轉和依賴注入

spring框架是乙個控制反轉和面向切面的開源框架,主要作用是簡化企業應用開發。一提到spring,大家都會想到控制反轉和依賴注入的概念,關於這兩個概念有很多的解釋。控制反轉就是應用本身不負責依賴物件的建立和維護,依賴物件的建立和維護由外部容器負責,這樣控制權由原先的應用本身轉移到了容器,控制權發生...

理解Spring中的依賴注入和控制反轉

學習過spring框架的人一定都會聽過spring的ioc 控制反轉 di 依賴注入 這兩個概念,對於初學spring的人來說,總覺得ioc di這兩個概念是模糊不清的,是很難理解的,今天和大家分享網上的一些技術大牛們對spring框架的ioc的理解以及談談我對spring ioc的理解。ioc是什...

Spring之控制反轉和依賴注入

spring之控制反轉和依賴注入 一般的,我們要想得到乙個物件,就把它new出來。在一些複雜的系統中,乙個物件a可能依賴於物件b,c等 表現為a類持有b,c類的物件作為a類的屬性 很多時候,我們並不想在a類中new出b,c的物件,這樣會增加類之間的耦合性。於是,就有了控制反轉 ioc 和依賴注入 d...