依賴注入(DI)和控制反轉(IOC)

2021-08-07 17:23:57 字數 970 閱讀 6328

依賴注入是用於實現控制反轉的最常見的方式之一。

依賴注入的思想是:當乙個類對另乙個類有依賴時,不在該類內部對依賴的類進行例項化,而是有乙個配置好了的bean.xml檔案,告訴容器所依賴的類,在例項化該類時,容器自動注入乙個依賴的類的例項。

傳統的方法就是在類中先例項化依賴的類,然後再呼叫該類中的方法。

public class  me

引入依賴注入的思想之後,就不用在me類中例項化computer類,**就可以改變成如下的樣子

}接下來在bean.xml檔案中配置一下依賴關係

總結一下依賴注入的優點:

1,我們可以將spring ioc理解成乙個倉庫,放著各種bean的例項,需要的時候直接從倉庫拿,不需要重新建立乙份,實現了**的單例模式。

2,如果直接new例項化的時候,需要有new實體類,如果累有變動,乙個乙個的改比較麻煩,利用了spring ioc之後直接修改乙個xml檔案即可。

3.提高了系統的耦合性。

ioc:控制反轉。

通俗的解釋例如,我們找物件,可以自己找,根據自己的眼緣來看,這樣就是所有的事情都親力親為。另外一種方法就是通過別人介紹,相親來找,通過向別人描述自己的要求,比如身高,體重,年齡,學歷,讓別人給自己尋找乙個合適的人。就是將一些事情交給一些機構容器來辦。

ioc就是這樣的一種思想。所有的類都會在spring容器中登記,告訴spring你是個什麼,需要什麼,spring會在系統執行到合適的時候,把你需要的東西主動給你,同樣,它也可以把你給其他需要你的類。所有類的建立,銷毀都由spring來控制,也就是說控制物件生存週期的不再是引用它的物件,而是spring。對於某個具體的物件而言,以前是它控制其他的的物件,現在是所有的物件都是有spring控制的,這也就是叫做控制反轉的原因。

控制反轉(ioc)和依賴注入(di)的聯絡:

在spring裡建立被呼叫者的工作不再由呼叫者來完成,因此成為控制反轉,建立被呼叫者的的例項工作通常由ioc容器來完成,然後注入呼叫者,因此也成為依賴注入。

控制反轉 IOC 和依賴注入 DI

控制反 從拆解字面上的意思,控制,是指物件建立 銷毀和管理 單例 的控制權,傳統程式設計上這個是交給呼叫方來控制。反轉,是指這些控制權優傳統上的呼叫方反轉為類似乙個容器的東西,統一調配和管理。依賴注入 依賴,其實就是耦合,這裡更多的是呼叫方和操作物件的耦合。注入是指,將某些耦合關係從乙個東西注入到另...

依賴注入DI和 控制反轉IoC

ioc inversion of control 控制反轉 di dependency injection 依賴注入 依賴注入和控制反轉說的實際上是同乙個東西,它們是一種設計模式,這種設計模式用來減少程式間的耦合 使用依賴注入,最重要的一點好處就是有效的分離了物件和它所需要的外部資源,使得它們鬆散耦...

IOC控制反轉和DI依賴注入區別

接觸這兩個概念後腦袋裡經常迷糊,而且許多資料中沒有說清楚,甚至混為一談。學習完spring後,才發現這兩個概念是不同時期對spring核心思想的描述,在這裡就不多說了,網上資料很多。在沒弄明白這兩個概念之前學spring總是似懂非懂,今天終於悟透了。簡單點明 ioc控制反 說的是建立物件例項的控制權...