Spring 依賴注入
spring 依賴注入
依賴注入(di)是一種設計模式,可以從編程代碼中刪除依賴,以便可以輕松管理和測試應用程序。依賴注入使我們的編程代碼松散耦合。為了更好地理解di,讓我們首先了解依賴關系查找(dl):
依賴關系查找
依賴查找是一種在需求之后獲取資源的方法。例如,可以有多種獲取資源的方法:
a obj = new aimpl();
這樣,我們可以通過new關鍵字直接獲取資源(a類的實例)。另一種方法是工廠方法:
a obj = a.geta();
這樣,我們通過調用靜態(tài)工廠方法geta()獲取資源(a類的實例)。
或者,我們可以通過jndi(java命名目錄接口)獲取資源。 :
context ctx = new initialcontext(); context environmentctx = (context) ctx.lookup("java:comp/env"); a obj = (a)environmentctx.lookup("a");
可以有多種獲取資源的方法來獲取資源。讓我們看看這種方法的問題。
依賴關系查找問題
主要有兩個依賴關系查找問題。
- 緊密耦合: 依賴關系查找方法使代碼緊密耦合。如果更改了資源,則需要對代碼進行大量修改。
- 測試不容易: 這種方法在測試應用程序時會產(chǎn)生很多問題,尤其是在黑盒測試中。
依賴注入
依賴注入是一種設計模式,它消除了程式。在這種情況下,我們提供來自外部源(例如xml文件)的信息。它使我們的代碼松散耦合,并且更易于測試。在這種情況下,我們將代碼編寫為:
class employee{ address address; employee(address address){ this.address=address; } public void setaddress(address address){ this.address=address; } }
在這種情況下,address類的實例由外部源(例如xml文件)通過構造函數(shù)或setter方法提供。
在spring框架中執(zhí)行依賴注入的兩種方法
spring框架提供了兩種注入依賴項的方法
- 通過構造方法
- 通過setter方法
spring 依賴項構造方法注入示例 具有依賴對象的構造函數(shù)注入 constructor注入以及示例 constructor注入(具有從屬對象)示例 constructor注入和map示例 constructor注入(具有相關對象)示例 spring bean繼承 spring setter方法注入 setter注入和依賴對象示例 setter注入和集合示例 setter注入(具有相關對象)示例 setter注入和map示例 帶非字符串映射的setter注入示例 構造函數(shù)與setter注入之間的區(qū)別