/**
* * 通過bytype自動裝配進行注入
* * collaboratorbean 單個bean,在配置元資料中不能有多個同型別的bean,否則會出錯
* set 集合,將多個同類性的bean注入這個集合(array)中
*/public class dependent
public void setset(setelement set)
@override
public string tostring()
}public class collaborator
public string tostring()
}public class setelement
public string tostring()
}
配置元資料:
輸出結果:system.out.println(context.getbean("dependent"));
bytype注入可以給集合(或array)注入依賴,因此,對於bytype自動裝配,有以下兩種情況:
對於這種情況,就上面的例子,屬性collaboratorbean就是乙個非集合的依賴,給它進行依賴注入時,spring查詢與它型別相同的bean,然後通過setter注入。
注:spring查詢的時候,不能出現二義性。如果有兩個同型別的bean都符合要求,則會出錯。
如果給上面的例子再配置乙個bean:
對於屬性collaboratorbean來說,有兩個bean和它匹配,所以就會出現二義性,spring就會丟擲異常。
如果是乙個集合型別的依賴,spring會把所有型別與集合元素型別匹配的bean注入到集合中。
就像上面的三個setelment型別的bean,都被注入到setelement中。
Spring 自動裝配 byType
自動裝配bytype,這種模式由屬性型別指定自動裝配。spring 容器看作 beans,在 xml 配置檔案中 beans 的 autowire 屬性設定為 bytype。然後,如果它的 type 恰好與配置檔案中 beans 名稱中的乙個相匹配,它將嘗試匹配和連線它的屬性。如果找到匹配項,它將注...
Spring自動裝配模式三 byType的解析
spring自動裝配模式三 bytype的解析 如果容器中存在乙個與指定屬性型別相同的bean,那麼將與該屬性自動裝配。如果存在多個該型別的bean,那麼將會丟擲異常,並指出不能使用bytype方式進行自動裝配。若沒有找到相匹配的bean,則什麼事都不發生,屬性也不會被設定。如果你不希望這樣,那麼可...
自動裝配舉例 byName
依賴者類,需要注入兩個bean 第乙個bean的name為one 第二個bean的name為two info是乙個string型別,要手動注入 public class dependent public void setone collaborator one public void settwo ...