spring中的依賴注入
依賴注入:
Dependency Injection
IoC作用的作用:
降低程序間的耦合(依賴關係)
依賴關係的管理都交給了spring來維護
在當前類需要用到其他類的對象,由spring爲我們提供,我們只需要在配置文件中說明
依賴關係的維護就稱之爲依賴注入
依賴注入數據有三類:
基本類型和String
其他bean類型(在配置文件中或者註解配置過的bean
複雜類型/集合類型
注入方式有三種:
使用構造函數提供
使用set方法提供
使用註解提供
構造函數注入
使用的標籤:constructor-arg
標籤中的屬性
type:用於指定要注入數據的數據類型,該數據類型也是構造函數中某個或某些參數的類型
index:用於指定要注入數據給構造函數中指定索引未知的參數賦值,位置從0開始
name:用於指定給構造函數中指定名稱的參數賦值(常用)
value:用於提供基本類型和String類型的數據
ref:用於指定其他的bean類型數據,指在springIoC核心容器中出現過的bean對象
優勢:
在獲取bean對象時,注入數據是必須的操作,否則對象無法創建成功
弊端;
改變了bean對象的實例化方式,使我們在創建對象時,如果用不到這些數據也必須提供
set方法注入(常用)
使用的標籤:property
出現的位置:bean標籤的內部
標籤中的屬性
name:用於指定注入時所調用的set方法名稱
value:用於提供基本類型和String類型的數據
ref:用於指定其他的bean類型數據,指在springIoC核心容器中出現過的bean對象
優勢:
創建對象是沒有明確的限制,可以直接使用默認構造函數
弊端:
如果某個成員必須有值,則獲取對象時有可能set方法沒有執行
複雜類型的注入
用於給List結構集合注入的標籤;
list array set
用於給Map結構集合注入的標籤:
map props
結果相同,標籤可以互換