自動裝配舉例 byName

2021-10-02 16:54:52 字數 875 閱讀 8122

/**

* * 依賴者類,需要注入兩個bean

* 第乙個bean的name為one

* 第二個bean的name為two

* *info是乙個string型別,要手動注入

*/public class dependent

public void setone(collaborator one)

public void settwo(collaborator two)

public string tostring()

}public class collaborator

public string tostring()

}

配置元資料:

輸出注入後的結果:system.out.println(context.getbean("dependent"));

輸出結果:

dependent類共有三個屬性,第乙個屬性名為info,是乙個string型別,需要手動注入;第二個屬性和第三個屬性可以通過自動裝配的方式注入,由於使用byname方式自動裝配,所以,要被注入的bean的名字要和屬性(字段)名相同;第二個和第三個的屬性名分別為one和two,因此,建立乙個id/name為one的bean,型別要與屬性one的型別匹配;建立乙個id/name為two的bean,型別要與屬性two的型別匹配。

注:通過byname進行匹配時,找到了要被注入的bean,這個bean的型別一定要和屬性的型別匹配,否則就會丟擲異常。

Spring自動裝配 byName裝配多個屬性

某些課程中講解byname屬性時只在注入的類中寫乙個屬性,就依靠這個屬性去尋找對應bean中id為此屬性的類,進行依賴注入。但是沒有提到如果注入的類中有多個屬性,該如何去尋找對應的類。通過實驗得出了,如果有多個屬性值的話會裝配所有出現的屬性。下面舉例說明 有三個類,分別為waiter waiter2...

Spring自動裝配模式二 byName的解析

spring自動裝配模式二 byname的解析 根據屬性名自動裝配。此選項將檢查容器並根據名字查詢與屬性完全一致的bean,並將其與屬性自動裝配。例如,在bean定義中將autowire設定為byname,而該bean包含homeaddressserviceimpl 屬性 同時提供sethomead...

自動裝配舉例 byType

通過bytype自動裝配進行注入 collaboratorbean 單個bean,在配置元資料中不能有多個同型別的bean,否則會出錯 set 集合,將多個同類性的bean注入這個集合 array 中 public class dependent public void setset setelem...