請解釋各種自動裝配模式的區別?

2021-10-11 03:19:54 字數 583 閱讀 3541

在spring 框架中共有5 種自動裝配,讓我們逐一分析。

1.no:這是spring 框架的預設設定,在該設定下自動裝配是關閉的,開發者需要自行在bean 定義中用標籤明確的設定依賴關係。

2.byname:該選項可以根據bean 名稱設定依賴關係。當向乙個bean 中自動裝配乙個屬性時,容器將根據bean 的名稱自動在在配置檔案中查詢乙個匹配的bean。如果找到的話,就裝配這個屬性,如果沒找到的話就報錯。

3.bytype:該選項可以根據bean 型別設定依賴關係。當向乙個bean 中自動裝配乙個屬性時,容器將根據bean 的型別自動在在配置檔案中查詢乙個匹配的bean。如果找到的話,就裝配這個屬性,如果沒找到的話就報錯。

4.constructor:造器的自動裝配和bytype 模式類似,但是僅僅適用於與有構造器相同引數的bean,如果在容器中沒有找到與構造器引數型別一致的bean,那麼將會丟擲異常。

5.autodetect:該模式自動探測使用構造器自動裝配或者bytype 自動裝配。首先,首先會嘗試找合適的帶引數的構造器,如果找到的話就是用構造器自動裝配,如果在bean 內部沒有找到相應的構造器或者是無參構造器,容器就會自動選擇bytpe 的自動裝配方式。

Spring 各種型別的自動裝配

通過約定自動賦值 原則 約定優於配置 只有物件之間的依賴關係可以自動裝配 自動裝配只適合與ref型別,即引用型別 default autowire autowire的型別 byname 其他bean的id值 該course類的屬性名 bytype 其他bean的型別 class 是否與該course...

Bean自動裝配的5種模式

在spring中,有五種autowire模式 byname,bytype,constructor,autodetect,no 下面分別對其進行介紹 1 byname 這個很簡單,直接按照名字進行查詢 package com.gc.action public class helloworld publ...

Spring自動裝配模式二 byName的解析

spring自動裝配模式二 byname的解析 根據屬性名自動裝配。此選項將檢查容器並根據名字查詢與屬性完全一致的bean,並將其與屬性自動裝配。例如,在bean定義中將autowire設定為byname,而該bean包含homeaddressserviceimpl 屬性 同時提供sethomead...