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方法傳入被呼叫者的例項。這種注入...