筆記 依賴注入

2021-10-09 12:39:43 字數 1562 閱讀 7591

把有依賴關係的類放到容器中,解析出這些類的例項,就是依賴注入。目的是實現類的解耦

例: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容器中打...