Spring配置文件的超詳細(xì)圖文介紹
1. Spring的配置文件的命名
答:Spring的配置文件是放在resources文件夾下面的,一般我們都會(huì)給他起一個(gè)默認(rèn)的名字:applicationContext.xml。如下圖所示:

2. Spring配置文件中有什么

上面的圖是最基本的Spring的配置文件的內(nèi)容。下面將詳細(xì)介紹這個(gè)配置文件中的每一個(gè)標(biāo)簽的使用方法。
- 在這個(gè)applicatinContext.xml文件中,通常最上面的是一串網(wǎng)址,這串網(wǎng)址會(huì)被起一個(gè)別名,這個(gè)別名就是一種約束信息。當(dāng)你運(yùn)行這個(gè)文件的時(shí)候,他會(huì)自己去這個(gè)地址的地方調(diào)用已經(jīng)寫好的東西,并且遵守這個(gè)寫好的規(guī)則。
- <bean>標(biāo)簽的詳細(xì)解讀
<bean id="" class="">
<property name="" value=""/> <!--這是set注入-->
</bean>- <bean>標(biāo)簽是用來創(chuàng)建對(duì)象的,跟我們最初學(xué)習(xí)的new一個(gè)對(duì)象是一樣的效果。
- <bean>標(biāo)簽中的id表示的是將來你創(chuàng)建的對(duì)象的名字,是唯一的。
- class:表示的是你創(chuàng)建的這個(gè)對(duì)象的類是什么類型的,需要我們寫這個(gè)類的全名稱限定,(這個(gè)全名稱限定是從java包下開始寫這個(gè)類所在的包路徑)。此外:我們這里的類,一定不能是接口,因?yàn)榻涌诒緛聿荒躰ew對(duì)象
- 若是<bean></bean>標(biāo)簽對(duì)之間沒有任何內(nèi)容,那么可以將<bean></bean>簡(jiǎn)寫為<bean/>。
3. set注入
<bean id="" class="">
<property name="" value="" />
</bean>set注入是說,我們?cè)趧?chuàng)建這個(gè)bean對(duì)象的時(shí)候,給這個(gè)創(chuàng)建的對(duì)象的屬性賦值使用的是set方法。
所以說,我們使用set注入的方法創(chuàng)建對(duì)象的時(shí)候,必須要保證該類已經(jīng)有set方法的存在。
set注入中的property標(biāo)簽的name屬性:必須跟該類的屬性名保持一模一樣,因?yàn)镾pring是會(huì)根據(jù)這個(gè)name的名字,去找對(duì)應(yīng)的setName的set方法。
set注入中的property標(biāo)簽的value屬性:表示的是給該對(duì)象的屬性賦值,value的值就是該對(duì)象的屬性的值,但這里要注意,value屬性僅僅只能給簡(jiǎn)單類型的屬性賦值,(簡(jiǎn)單類型即:八大基本類型和基本類型的包裝類)。
那么如何跟引用類型的屬性復(fù)制呢?
這時(shí),我們就要使用ref屬性,ref屬性也是property標(biāo)簽的一個(gè)屬性,ref屬性是用來給引用類型的屬性賦值的,ref屬性跟value屬性的功能是一樣的,但是value屬性是給基本類型屬性賦值,ref屬性是給引用類型的屬性賦值。
ref屬性的值是該引用類型的id值。
補(bǔ)充:當(dāng)一個(gè)類在使用set注入屬性值的時(shí)候,只寫了set方法,卻沒有寫該屬性,那么使用了set注入,是不會(huì)報(bào)錯(cuò)的,因?yàn)楦鶕?jù)Spring的設(shè)計(jì)規(guī)則,Spring只會(huì)判斷該set方法是否存在,若是該方法存在,那么就不會(huì)報(bào)錯(cuò)。
4. 構(gòu)造注入
<bean id="" class="">
<constructor-arg name="" value="" />
</bean>構(gòu)造注入使用的是,創(chuàng)建對(duì)象的類的有參構(gòu)造方法,因此使用構(gòu)造注入的時(shí)候,要保證構(gòu)造方法的存在。
構(gòu)造注入中的constructor-arg標(biāo)簽中的name屬性,必須跟構(gòu)造方法里面參數(shù)的名字一摸一樣,
構(gòu)造注入中的constructor-arg標(biāo)簽中的value屬性,也是用來跟基本類型的屬性賦值的。若是給引用類型的屬性賦值,那么必須使用ref屬性。ref的值是這個(gè)屬性所在類的id的值。
補(bǔ)充:構(gòu)造注入中的constructor-arg標(biāo)簽中的name屬性,可以使用index來代替,index的值為0,1,2.表示的是給構(gòu)造方法中的第幾個(gè)參數(shù)賦值。例如
<bean id="" class=""> <constructor-arg index="0" value="" /><!--給構(gòu)造方法的第一個(gè)參數(shù)賦值--> <constructor-arg index="2" value="" /><!--給構(gòu)造方法的第三個(gè)參數(shù)賦值--> <constructor-arg index="1" value="" /><!--給構(gòu)造方法的第二個(gè)參數(shù)賦值--></bean><bean id="" class="">
<constructor-arg index="0" value="" /><!--給構(gòu)造方法的第一個(gè)參數(shù)賦值-->
<constructor-arg index="2" value="" /><!--給構(gòu)造方法的第三個(gè)參數(shù)賦值-->
<constructor-arg index="1" value="" /><!--給構(gòu)造方法的第二個(gè)參數(shù)賦值-->
</bean>以上代碼說明,使用index的屬性給構(gòu)造注入的屬性賦值的時(shí)候,不是必須按照0,1,2的順序賦值,可以打亂順序,使用0,2,1的下標(biāo)也是可以的。
若是我們嚴(yán)格按照0,1,2的下標(biāo)來給構(gòu)造注入的屬性賦值,那么我們還可以簡(jiǎn)寫成下面的樣式:
<bean id="" class="">
<constructor-arg value="" /><!--給構(gòu)造方法的第一個(gè)參數(shù)賦值-->
<constructor-arg value="" /><!--給構(gòu)造方法的第二個(gè)參數(shù)賦值-->
<constructor-arg value="" /><!--給構(gòu)造方法的第三個(gè)參數(shù)賦值-->
</bean>即上面的代碼省略了index屬性,但這樣的方式要求,你必須按照構(gòu)造方法中的參數(shù)的順序去給屬性賦值。
構(gòu)造注入強(qiáng)大的地方:我們使用構(gòu)造注入的方式給屬性賦值的時(shí)候,我們可以直接使用Java中內(nèi)置的寫好的類。舉個(gè)例子,如下圖所示:

上面的圖中的name是File類的屬性,value是我們想給自己定義的File類的對(duì)象myFile賦的值。
總結(jié)
到此這篇關(guān)于Spring配置文件的超詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Spring配置文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot2.X Devtools熱部署實(shí)現(xiàn)解析
這篇文章主要介紹了SpringBoot2.X Devtools熱部署實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式舉例詳解
在我們開發(fā)項(xiàng)目過程中經(jīng)常需要定時(shí)任務(wù)來幫助我們來做一些內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Springboot實(shí)現(xiàn)定時(shí)任務(wù)的4種方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
SpringBoot 中html的頁(yè)面間跳轉(zhuǎn)問題小結(jié)
這篇文章主要介紹了SpringBoot 中html的頁(yè)面間跳轉(zhuǎn)問題小結(jié),本文給大家分享兩種方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10
SpringBoot 如何根據(jù)不同profile選擇不同配置
這篇文章主要介紹了SpringBoot 如何根據(jù)不同profile選擇不同配置的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Java基于正則表達(dá)式實(shí)現(xiàn)xml文件的解析功能詳解
這篇文章主要介紹了Java基于正則表達(dá)式實(shí)現(xiàn)xml文件的解析功能,結(jié)合實(shí)例形式分析了java使用正則表達(dá)式針對(duì)xml文件節(jié)點(diǎn)的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
idea設(shè)置在包里面在創(chuàng)建一個(gè)包方式
這篇文章主要介紹了idea設(shè)置在包里面在創(chuàng)建一個(gè)包方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05

