自動裝配舉例 byType

2021-10-02 16:54:53 字數 1051 閱讀 6564

/**

* * 通過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 ...