在配置檔案中我們配置bean檔案,如果bean的屬性設定了autowire=「byname」表示自動裝備。即表示spring容器會查詢該bean配置的屬性(對應的pojo類的屬性)並設定這個屬性的值為對應的bean。通俗來講就是,實體類中有屬性想獲得而不想在bean內的重新寫屬性配置。看圖你就明白了
這種模式由屬性型別指定自動裝配。spring 容器看作 beans,在 xml 配置檔案中 beans 的 autowire 屬性設定為 bytype。然後,如果它的type恰好與配置檔案中 beans 名稱(id)中的乙個相匹配,它將嘗試匹配和連線它的屬性。如果找到匹配項,它將注入這些 beans,否則,它將丟擲異常。看圖
no預設的設定,它意味著沒有自動裝配
byname
由屬性名自動裝配。spring
容器看到在
xml
配置檔案中
bean
的自動裝配的屬性設定為
byname
。然後嘗試匹配,並且將它的屬性與在配置檔案中被定義為相同名稱的
beans
的屬性進行連線。
bytype
由屬性資料型別自動裝配。spring
容器看到在
xml
配置檔案中
bean
的自動裝配的屬性設定為
bytype
。然後如果它的型別匹配配置檔案中的乙個確切的 bean
名稱,它將嘗試匹配和連線屬性的型別。如果存在不止乙個這樣的
bean
,則乙個致命的異常將會被丟擲。
constructor
類似於 bytype
,但該型別適用於構造函式引數型別。如果在容器中沒有乙個構造函式引數型別的
bean
,則乙個致命錯誤將會發生。
autodetect
spring首先嘗試通過
constructor
使用自動裝配來連線,如果它不執行,
spring
嘗試通過
bytype
來自動裝配。
總結:spring 容器可以在不使用元素的情況下自動裝配相互協作的 bean 之間的關係,這有助於減少編寫乙個大的基於 spring 的應用程式的 xml 配置的數量。
Spring Beans 自動裝配
使用元素的 autowire 屬性為乙個 bean 定義指定自動裝配模式。這種模式由屬性名稱指定自動裝配。spring 容器看作 beans,在 xml 配置檔案中 beans 的 auto wire 屬性設定為 byname。然後,它嘗試將它的屬性與配置檔案中定義為相同名稱的 beans 進行匹配...
Spring Beans 自動裝配
自動裝配 有助於減少編寫乙個大的基於 spring 的應用程式的 xml 配置的數量。byname 由屬性名自動裝配 原先採用手動配置 user class com.fanlan.pojo.user name name value 氾濫 bean 自動裝配 仍然可以使用標籤連線其餘的屬性 user ...
Spring Beans 自動裝配
spring 自動裝配 byname 這種模式由屬性名稱指定自動裝配。spring 容器看作 beans,在 xml 配置檔案中 beans 的 auto wire 屬性設定為 byname。然後,它嘗試將它的屬性與配置檔案中定義為相同名稱的 beans 進行匹配和連線。如果找到匹配項,它將注入這些...