Spring 依賴注入

2021-07-02 21:42:01 字數 1570 閱讀 1942

1,概述:

依賴注入(di,dependency injection)也稱為控制反轉(ioc,inversion of control),是指程式執行過程中,若需要呼叫另乙個物件協助時,無須在**中建立被呼叫者,而是依賴於外部的注入.依賴注入是目前最優秀的解耦方式。依賴注入讓spring的bean之間以配置檔案的方式組織在一起,而不是以硬編碼的方式耦合在一起的。

2,注入方式:

依賴注入根據注入方式的不同,可分為兩類:

(1)設值注入    

(2)構造注入

3,設值注入:

設值注入是指,通過setter方法傳入被呼叫者的例項。這種注入方式簡單、直觀,因而在spring的依賴注入中大量使用。

配置檔案解析:

ref:當指定bean的某屬性值為另一bean的例項時,通過ref指定它們間的參考關係。ref的值必須為某bean的id值。

4,構造注入:

構造注入是指,在構造呼叫者例項的同時,完成被呼叫者的例項化。即,使用構造器設定依賴關係。

配置檔案解析:

5,:當使用構造注入時,**的構造器中每個引數對應乙個該元素。

index:指明該引數對應著構造器的第幾個引數,從0開始,並要寫為字串形式的數字。不過,該屬性不要也行,但要注意,若引數型別相同,或之間有包含關係,則需要保證賦值順序要與構造器中的引數順序一致。

value:當引數的值為乙個普通型別的值,並由配置檔案給定時,需使用該屬性。

ref:當引數的值為另一bean的例項時,使用該屬性指定所關聯的bean例項。ref的值必須為某bean的id值。

當通過使用ref標籤來引用其它例項時,ref標籤具有兩個屬性:bean與local。

或  bean與local的區別是:

local:只會在當前配置檔案中查指定的bean。

bean:若在當前配置檔案中找不到指定的bean,還會到其它配置檔案中查詢。

6,容器中bean的作用域

當通過spring容器建立乙個bean例項時,不僅可以完成bean的例項化,還可以通過scope屬性,為bean指定特定的作用域。spring支援5種作用域。

(1)singleton:單態模式。即在整個spring容器中,使用singleton定義的bean將是單例的,只有乙個例項。預設為單態的。

(2)prototype:原型模式。即每次使用getbean方法獲取的同乙個的例項都是乙個新的例項。

(3)request:對於每次http請求,都將會產生乙個不同的bean例項。只有在web應用中使用spring時,該作用域才有效。

(4)session:對於每個不同的http session,都將產生乙個不同的bean例項。只有在web應用中使用spring時,該作用域才有效。

(5)global session:每個全域性的http session對應乙個bean例項。典型情況下,僅在使用portlet context的時候有效(多個web應用共享乙個session)。一般應用中,global-session與session是等同的。只有在web應用中使用spring時,該作用域才有效。

spring 依賴注入 Spring依賴注入

依賴注入 dependency injection,簡稱di 與控制反轉 ioc 的含義相同控制反 在使用spring框架之後,物件的例項不再由呼叫者來建立,而是由spring容器來建立,spring容器會負責控制程式之間的關係,而不是由呼叫者的程式 直接控制,這樣控制權由應用程式轉移到了sprin...

Spring依賴注入

所謂依賴注入,是指在程式執行過程中,如果需要呼叫另乙個物件協助時,無須在 中建立按被呼叫者,而是依賴外部注入。spring 的依賴注入對呼叫者和被呼叫者幾乎沒有任何要求,完全支援對 pojo 之間依賴關係的管理。依賴注入的兩種方式 1 設值注入 設值注入是指通過 setter 方法傳入被呼叫者的例項...

SPring依賴注入

所謂依賴注入,是指在程式執行過程中,如果需要呼叫另乙個物件協助時,無須在 中建立按被呼叫者,而是依賴外部注入。spring的依賴注入對呼叫者和被呼叫者幾乎沒有任何要求,完全支援對pojo之間依賴關係的管理。依賴注入的兩種方式 1 設值注入 設值注入是指通過setter方法傳入被呼叫者的例項。這種注入...