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