自動(dòng)裝配屬性有6個(gè)值可選,分別代表不同的含義。
1,byName
從Spring環(huán)境中獲取目標對象時(shí),目標對象中的屬性會(huì )根據名稱(chēng)在整個(gè)Spring環(huán)境中查找<bean>標簽的id屬性值。如果有相同的,那么獲取這個(gè)對象,實(shí)現關(guān)聯(lián)。
整個(gè)Spring環(huán)境:表示所有的spring配置文件中查找,那么id不能有重復的。
2,byType
從Spring環(huán)境中獲取目標對象時(shí),目標對象中的屬性會(huì )根據類(lèi)型在整個(gè)spring環(huán)境中查找<bean>標簽的class屬性值。如果有相同的,那么獲取這個(gè)對象,實(shí)現關(guān)聯(lián)。
缺點(diǎn):如果存在多個(gè)相同類(lèi)型的bean對象,會(huì )出錯。
如果屬性為單一類(lèi)型的數據,那么查找到多個(gè)關(guān)聯(lián)對象會(huì )發(fā)生錯誤。
如果屬性為數組或集合(泛型)類(lèi)型,那么查找到多個(gè)關(guān)聯(lián)對象不會(huì )發(fā)生異常。
3,constructor
使用構造方法完成對象注入,其實(shí)也是根據構造方法的參數類(lèi)型進(jìn)行對象查找,相當于采用byType的方式。
4,autodetect
自動(dòng)選擇:如果對象沒(méi)有無(wú)參數的構造方法,那么自動(dòng)選擇constructor的自動(dòng)裝配方式進(jìn)行構造注入。如果對象含有無(wú)參數的構造方法,那么自動(dòng)選擇byType的自動(dòng)裝配方式進(jìn)行setter注入。
5,no
不支持自動(dòng)裝配功能
6,default
表示默認采用上一級標簽的自動(dòng)裝配的取值。如果存在多個(gè)配置文件的話(huà),那么每一個(gè)配置文件的自動(dòng)裝配方式都是獨立的。
如果配置文件存在多個(gè)的情況下,加載配置文件的方式:
1)可以指定總的配置文件去包含子的配置文件,然后只加載總的配置文件即可在總的配置文件applicationContext.xml中使用import標簽進(jìn)行子文件包<importresource="applicationContext-test.xml"/>
代碼中加載配置文件:
2)使用星號來(lái)匹配多個(gè)文件進(jìn)行加載,文件名稱(chēng)要符合規律。 (推薦使用)
3)可以使用數組作為參數,一次性加載多個(gè)配置文件
注意:自動(dòng)裝配功能和手動(dòng)裝配要是同時(shí)使用,那么自動(dòng)裝配就不起作用。
聯(lián)系客服