/**
* * 依賴者類,需要注入兩個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...