Spring中的依賴注入
阿新 • • 發佈:2021-01-16
IOC(控制反轉)的作用:降低程式之間的耦合度(依賴關係)。
在Java中,依賴關係的管理都交給spring來維護。噹噹前類需要用到其他類的物件時,由spring來為我們提供,我們只需要在配置檔案當中進行說明。
依賴關係的維護就稱為依賴注入。
一共有三類資料可以注入:基本型別和String、其他bean型別、複雜型別/集合型別。
注入方法有三種:建構函式、set方法、使用註解提供。
經常變化的資料並不適用於注入的方式。
建構函式注入
使用的標籤:constructor-arg
出現的位置:bean標籤的內部
屬性:
type:用於指定要注入資料的資料型別,該資料型別也是建構函式當中某個或者某些引數的型別。
<bean id="唯一標識" factory-bean="工廠名" factory-method="方法名" >
<constructor-arg type="java.lang.String" value="test"> </constructor-arg>
</bean>
上述程式碼指的是將“text”注入給建構函式中string型別的引數,必須配合下列引數進行使用
index:要注入的資料給建構函式中指定的位置,index表示位置引數,從0開始。
value:用於提供基本型別和string型別的資料。
ref:用於指定其他的bean型別的資料,它指的是在springIOC核心容器中出現過的bean物件。
優勢:
1、在獲取bean物件時,注入資料是必須的操作,否則物件無法建立成功。
2、改變了bean物件的例項化方法。我們在建立物件時,如果用不到這些資料也必須提供。
set方法注入
使用的標籤:property
出現的位置:bean標籤的內部
標籤的屬性:
name 指定注入時所使用的set方法的名稱
value 用於提供基本型別和string型別的資料
ref 用於指定其他bean型別的資料,指的是spring中的ioc核心容器中出現過的bean物件。
<bean id="唯一標識" factory-bean="工廠名" factory-method="方法名" >
<property name="name" value="zby"></property>
</bean>
將“zby”注入給以setName為方法名的函式。要去掉set並且將Name的大寫改為小寫。
優勢:建立物件時沒有明確的限制,可以直接使用預設建構函式。
弱勢:如果有某個成員必須有值,那麼獲取物件有可能set方法未執行。
注入集合資料
當方法的引數是集合型別的資料時,使用這種方法。
外層標籤使用property
用於給list結構集合注入的標籤:list array set
用於給map結構集合注入的標籤:map props
結構相同,標籤可以互換。