首頁  >  文章  >  Java  >  spring框架學習(四)自動組裝

spring框架學習(四)自動組裝

黄舟
黄舟原創
2016-12-29 13:15:301332瀏覽

set注入和構造注入有時在做配置時比較麻煩。所以框架為了提高開發效率,提供自動組裝功能,簡化配置。 Spring框架式預設不支援自動組裝的,若要使用自動組裝需要修改spring設定檔中標籤的autowire屬性
自動組裝屬性有6個值可選,分別代表不同的意義。

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
表示預設採用上一層標籤的自動組裝的值。如果存在多個設定檔的話,那麼每一個設定檔的自動組裝方式都是獨立的。

如果設定檔存在多個的情況下,載入設定檔的方式:
1)可以指定總的設定檔去包含子的設定文件,然後只載入總的設定檔即可在總的設定檔applicationContext. xml中使用import標籤進行子檔案包 




程式碼中載入設定檔: 

ApplicationContextac= newClassPathXmlApplicationContext("applicationContext.xml");


程式碼中載入設定檔: 

//配置文件的名称
applicationContext.xml
applicationContext-action.xml
applicationContext-service.xml
applicationContext-dao.xml
 
ApplicationContextac =newClassPathXmlApplicationContext("applicationContext*.xml");

程式碼中使用多個星號進行配對

星號載入,檔案名稱要符合規律。 (建議使用)

String[]files={"applicationContext.xml","applicationContext-test.xml"};               
ApplicationContextac = newClassPathXmlApplicationContext(files);

3)可以使用陣列作為參數,一次載入多個設定檔rrreee


注意:自動裝配功能和手動裝配要是同時使用,那麼自動裝配功能和手動裝配功能和手動組裝功能不起作用。

 以上就是spring框架學習(四)自動組裝的內容,更多相關內容請關注PHP中文網(www.php.cn)!
🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn