Spring Beans 自動裝配

2021-10-08 09:35:37 字數 1438 閱讀 4270

自動裝配

有助於減少編寫乙個大的基於 spring 的應用程式的 xml 配置的數量。

byname

由屬性名自動裝配

原先採用手動配置

"user"

class

="com.fanlan.pojo.user"

>

name

="name"

value

="氾濫"

/>

bean

>

自動裝配(仍然可以使用標籤連線其餘的屬性)

"user"

class

="com.fanlan.pojo.user"

autowire

="byname"

/>

spring 容器看到在 xml 配置檔案中 bean 的自動裝配的屬性設定為 byname,byname會根據它的屬性與在配置檔案中被定義為相同名稱的 beans 的屬性。

確保id屬性名唯一,不然會包錯。

bytype

由屬性資料型別自動裝配

"user"

class

="com.fanlan.pojo.user"

autowire

="bytype"

/>

spring 容器看到在 xml 配置檔案中 bean 的自動裝配的屬性設定為 bytype。然後如果它的型別匹配配置檔案中的乙個確切的 bean 名稱,它將嘗試匹配和連線屬性的型別。如同上面

如果存在不止乙個這樣的 bean,則乙個致命的異常將會被丟擲。

constructor

由建構函式自動裝配,應用於構造器引數

"user"

class

="com.fanlan.pojo.user"

autowire

="constructor"

>

name

="name"

value

="氾濫"

/>

bean

>

spring 容器看作 beans,在 xml 配置檔案中 beans 的 autowire 屬性設定為 constructor。然後,它嘗試把它的建構函式的引數與配置檔案中 beans 名稱中的乙個進行匹配和連線。如果找到匹配項,它會注入這些 bean,否則,它會丟擲異常。

總結:byname 會自動在容器上下文中查詢,和自己物件set 方法後面的值相同對應的的id;

bytype 會自動在容器上下文中查詢,和自己物件屬性型別class一致的

Spring Beans 自動裝配

使用元素的 autowire 屬性為乙個 bean 定義指定自動裝配模式。這種模式由屬性名稱指定自動裝配。spring 容器看作 beans,在 xml 配置檔案中 beans 的 auto wire 屬性設定為 byname。然後,它嘗試將它的屬性與配置檔案中定義為相同名稱的 beans 進行匹配...

Spring Beans 自動裝配

spring 自動裝配 byname 這種模式由屬性名稱指定自動裝配。spring 容器看作 beans,在 xml 配置檔案中 beans 的 auto wire 屬性設定為 byname。然後,它嘗試將它的屬性與配置檔案中定義為相同名稱的 beans 進行匹配和連線。如果找到匹配項,它將注入這些...

Spring Beans自動裝配

在配置檔案中我們配置bean檔案,如果bean的屬性設定了autowire byname 表示自動裝備。即表示spring容器會查詢該bean配置的屬性 對應的pojo類的屬性 並設定這個屬性的值為對應的bean。通俗來講就是,實體類中有屬性想獲得而不想在bean內的重新寫屬性配置。看圖你就明白了 ...