把有依賴關係的類放到容器中,解析出這些類的例項,就是依賴注入。目的是實現類的解耦
例:class a中用到了class b的物件b,一般情況下,需要在a的**中顯式的new乙個b的物件。採用依賴注入技術之後,a的**只需要定義乙個私有的b物件,不需要直接new來獲得這個物件,而是通過相關的容器控制程式來將b物件在外部new出來並注入到a類裡的引用中。
基於建構函式的依賴注入
建構函式的引數是依賴項
在配置檔案給建構函式指定引數
name="
" class="
">
ref=
"teacher"
/>
bean
>
基於設定函式的依賴注入
設定函式就是get和set
在配置檔案給當前bean指定屬性引數
name="
" class="
">
name="
" value="
">
property
>
bean
>
基於自動裝配的依賴注入
spring的自動裝配有三種模式:bytype(型別模式),byname(名稱模式)、constructor(建構函式模式)。
bytype模式:它會根據引數型別在spring容器中查詢與引數型別相同的被依賴bean物件
byname模式中:spring ioc容器會根據定義bean類的屬性名稱,在spring容器中查詢與bean類屬性名稱相同的其它bean名稱進行匹配
constructor(建構函式模式)適用於構造函式引數型別,spring ioc容器會根據定義bean類的建構函式給出的引數型別
基於註解的依賴注入
使用註解前必須在spring配置檔案中註冊註解驅動 ,
@autowired 註解,可以對bean類成員變數、方法及建構函式進行標註,完成依賴注入的自動裝配工作。使用@autowired可以省略bean類的待依賴注入物件的set方法
@autowired預設情況下按照依賴注入物件的型別自動進行匹配。加入@autowired註解的方式是在bean類依賴注入物件的前面加上@autowired語句。
teacher為待注入物件
@autowired
private teacher teacher;
name
="teacher"
class
="..."
>
name
="..."
value
="..."
>
property
>
bean
>
@resource註解的功能和@autowired註解功能相近,@resource有name和type兩個主要的屬性。spring容器對於@resource註解的name屬性解析為bean的名字,type屬性則解析為bean的型別
依賴注入筆記
依賴注入 假設當前有乙個使用者名叫bowman,bowman每天做三件事,看書,玩遊戲,抓寵物。bowman需要使用乙個手機才能做這些事情,在不使用依賴注入的情況下,是這樣的 namespace dependency namespace dependency iphone6 iphone6 newi...
依賴注入學習筆記(一)認識依賴注入
1 什麼是依賴注入 筆記摘要 所謂的 依賴 就是指在實現某個功能模組時需要使用另外乙個 或多個 元件 或 服務 那麼這個所需的 元件 或 服務 將被稱為 依賴 依賴注入 通過以構造函式引數,設值方法或屬性欄位等方式將具體元件傳遞給依賴方。以建構函式的方式注入 class user storage n...
Spring依賴注入相關筆記
1.概述 從spring2.5開始就可以使用註解來配置依賴注入。而不是採用xml來描述乙個bean連線,你可以使用相關類,方法或字段宣告的註解,將bean配置移動到元件類本身。在xml注入之前進行註解注入,因此後者的配置將通過兩種方式的屬性連線別前者重寫。註解連線在預設的情況下在spring容器中打...