1. 程式人生 > >Spring自動裝配方式介紹

Spring自動裝配方式介紹

Spring是受歡迎的企業級Java應用程式開發框架,數以百萬的來自世界各地的開發人員都在使用 Spring 框架建立高效能、易於測試和可重用的程式碼。

自動裝配是Spring框架的重要功能,是使用Spring滿足bean依賴的一種方式,Spring會在應用中為某個bean尋找其依賴的bean,Spring中bean有三種裝配機制,分別是:在xml中顯示配置、在java中顯示配置以及隱式的bean發現機制和自動裝配。

Spring自動化裝配可以藉助@Autowired屬性實現,以下是自動裝配@Autowired屬性的六個值的簡要介紹:

1. byName

從Spring環境中獲取目標物件時,目標物件中的屬性會根據名稱在整個Spring環境中查詢標籤的id屬性值。如果有相同的,那麼獲取這個物件,實現關聯。

整個Spring環境:表示所有的spring配置檔案中查詢,那麼id不能有重複的。

2. byType

從Spring環境中獲取目標物件時,目標物件中的屬性會根據型別在整個spring環境中查詢標籤的class屬性值。如果有相同的,那麼獲取這個物件,實現關聯。

缺點:如果存在多個相同型別的bean物件,會出錯。

如果屬性為單一型別的資料,那麼查詢到多個關聯物件會發生錯誤。

如果屬性為陣列或集合(泛型)型別,那麼查詢到多個關聯物件不會發生異常。

3. constructor

使用構造方法完成物件注入,其實也是根據構造方法的引數型別進行物件查詢,相當於採用byType的方式。

4. autodetect

自動選擇:如果物件沒有無引數的構造方法,那麼自動選擇constructor的自動裝配方式進行構造注入。如果物件含有無引數的構造方法,那麼自動選擇byType的自動裝配方式進行setter注入。

5. no

不支援自動裝配功能。

6. default

表示預設採用上一級標籤的自動裝配的取值。如果存在多個配置檔案的話,那麼每一個配置檔案的自動裝配方式都是獨立的。

自動裝配是Spring框架的重要功能,能顯著減少裝配的數量,因此在配置數量相當多時採用自動裝配,可以減少工作量,且自動裝配可以使配置與Java程式碼同步更新,因此,在開發過程中建議採用自動裝配,在系統穩定時可改為顯性裝配的方式。