欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring XML配置文件標(biāo)簽詳解

 更新時(shí)間:2024年12月26日 10:45:11   作者:南嶺落梅  
這篇文章主要介紹了spring XML配置文件標(biāo)簽詳解,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

spring的XML配置文件的標(biāo)簽大體可以分為兩種:

其中的默認(rèn)標(biāo)簽,我們前面文章里面出現(xiàn)的標(biāo)簽都是默認(rèn)標(biāo)簽,是spring本身自帶的,不需要我們?nèi)ヒ肫渌麞|西。而自定義標(biāo)簽則是指非默認(rèn)標(biāo)簽的其他的由我們或產(chǎn)品發(fā)行方自定義的對(duì)接spirng的XML標(biāo)簽。這里其實(shí)就關(guān)系到spring整合其他框架了。

默認(rèn)標(biāo)簽與自定義標(biāo)簽最大的區(qū)別就是,自定義標(biāo)簽需要我們自己引入其它命名空間約束的標(biāo)簽(通過(guò)前綴方式引入)。這里我們先來(lái)講一下Bean的XML配置文件的標(biāo)頭。

命名空間、xsd介紹

提到配置文件里面的標(biāo)簽,就離不開(kāi)要談到xsd和DTD,他們都可以用來(lái)描述xml文檔的結(jié)構(gòu),以前一些老的代碼里面可能還會(huì)看到DTD,但是隨著xsd支持?jǐn)?shù)據(jù)類(lèi)型,所以現(xiàn)在看到的基本都是xsd了。

XML Schema 語(yǔ)言是用來(lái)定義xml結(jié)構(gòu)的。簡(jiǎn)稱(chēng)xsd(XML Schema Definition)

如下圖,這是一個(gè)默認(rèn)的spring Bean的XML配置文件的標(biāo)頭:

xmlns:意為XML 命名空間,用于定義一套xml標(biāo)簽的規(guī)范。這個(gè)屬性用于定義這個(gè) XML 文檔的默認(rèn)命名空間,在這個(gè)示例中告訴解析器這個(gè) XML 文件中的元素(如<bean>)是http://www.springframework.org/schema/beans這個(gè)命名空間下定義的。

xmlns:xsi:用于引入XML 模式實(shí)例命名空間(也就是XML Schema Instance)。這個(gè)命名空間提供了一些用于驗(yàn)證 XML 文檔結(jié)構(gòu)的屬性。

xsi:;schemaLocation:指定 XML 文檔所遵循的 XML Schema 的位置。這個(gè)屬性通常會(huì)有一對(duì)的值,用來(lái)指定xmlns屬性定義的文件的位置??粗褚粋€(gè)網(wǎng)址,實(shí)際可能映射的是本地的某個(gè)jar包里面的xsd文件。而且寫(xiě)法上,先寫(xiě)命名空間,再寫(xiě)xsd地址。

總結(jié)一下引入schema文件的具體步驟:

1、查看schema文檔,找到根元素,在xml中寫(xiě)出來(lái)

2、根元素來(lái)自哪個(gè)命名空間。使用xmlns指令來(lái)聲明(命名空間的作用:它指的是一個(gè)環(huán)境,所用的標(biāo)簽來(lái)自于哪個(gè)環(huán)境定義的)

3、聲明引入的名稱(chēng)空間跟哪個(gè)xsd文件對(duì)應(yīng)

4、聲明schemaLocation哪里來(lái)的,一般都是某個(gè)標(biāo)準(zhǔn)(寫(xiě)法上都是先寫(xiě)命名空間+具體文件的位置,成對(duì))

除此之外,在spring里面還有7大模塊,每個(gè)模塊也有它們自己的對(duì)應(yīng)標(biāo)簽。

例如context組件,在使用注解和配置類(lèi)來(lái)平替bean.xml配置文件的時(shí)候,我們就需要使用到context文件的標(biāo)簽。詳細(xì)的可以去看我的另一篇文章:

<beans>標(biāo)簽配置多環(huán)境

在實(shí)際開(kāi)發(fā)中,我們往往會(huì)有很多環(huán)境。比如編寫(xiě)代碼一個(gè)環(huán)境,測(cè)試一個(gè)環(huán)境,運(yùn)維又是一個(gè)環(huán)境,每個(gè)環(huán)境可能都會(huì)有自己特定的某個(gè)東西。為了便于這些環(huán)境分開(kāi),在spring的XML配置環(huán)境里面,我們可以使用<beans>來(lái)給特定的環(huán)境配置其所需要的環(huán)境。

這里邊示范邊講解,我們編寫(xiě)配置文件:

其中,在配置文件的根標(biāo)簽下可以繼續(xù)使用<beans>,并不是說(shuō)<beans>只作為根標(biāo)簽。在用來(lái)配置環(huán)境的Bean的<beans>標(biāo)簽,還需要通過(guò)屬性profile來(lái)給這個(gè)<beans>的內(nèi)容啟用的環(huán)境命名。相關(guān)的User類(lèi)和AServer類(lèi)大家自己定義即可,里面沒(méi)什么東西。

然后是測(cè)試類(lèi)運(yùn)行:

其中,使用System.setProperty();來(lái)啟用我們的spring配置文件的相關(guān)環(huán)境,而且我們的代碼運(yùn)行中,多次啟用了不同的環(huán)境,那么只會(huì)生效我們最新啟用的那個(gè)環(huán)境。

這里兩個(gè)環(huán)境都有aServer,但是text環(huán)境中的aServer里面給屬性name賦值為李四,dev賦值為張三。

另外還需要注意,我們更改環(huán)境后,我們的容器還要重新加載一下進(jìn)行更新,因?yàn)檫@個(gè)容器是根據(jù)調(diào)用對(duì)象的環(huán)境,返回對(duì)應(yīng)的Bean配置,而其他不符合環(huán)境的Bean配置不會(huì)給到調(diào)用對(duì)象。

我們看斷點(diǎn)的變量池,這是第一個(gè)斷點(diǎn)處的內(nèi)容,也就是開(kāi)發(fā)環(huán)境下的Bean對(duì)象:

這是第二斷點(diǎn)處的內(nèi)容:

當(dāng)然,把多個(gè)環(huán)境的配置全部寫(xiě)在一個(gè)配置文件里面,會(huì)顯得很亂,所以多環(huán)境還常搭配<import>標(biāo)簽使用。

<import>引入其他資源配置文件

我們編寫(xiě)兩個(gè)bean的配置文件:

其中,我們的bean1文件中沒(méi)有配置user,但是我們?cè)赽ean2文件中配置了user,我們?cè)赽ean1引入bean2,我們就可以得到bean2里面的配置了。

測(cè)試類(lèi):

運(yùn)行結(jié)果:

前面我們講到了多環(huán)境常搭配<import>,也就是在這里。我們?cè)谥髋渲梦募锩妫辉僦苯釉谂渲枚喹h(huán)境的<beans>標(biāo)簽下編寫(xiě)內(nèi)容,而是把內(nèi)容編寫(xiě)到另一個(gè)單獨(dú)的配置文件里面,然后在主配置文件下面的多環(huán)境使用<import>導(dǎo)入它。

引入自定義標(biāo)簽

這個(gè)自定義,不只是在說(shuō)我們自己個(gè)人定義的。實(shí)際應(yīng)用中,是指spring整合其他框架時(shí),其他框架有提供自己相關(guān)XML配置的標(biāo)簽,我們可以將其引入來(lái)使用。

在我的另一篇文章里講到了springContext標(biāo)簽的引入,但是那是spring自己的模塊,如果我們要引入其他框架,就不像那里面演示的改幾個(gè)單詞就可以了。

在這里我以導(dǎo)入dubbo為例,分享一下我的個(gè)人經(jīng)驗(yàn):

首先,我們要導(dǎo)入dubbo的jar包,然后在我們的Bean配置文件的表頭中引入相關(guān)標(biāo)簽。

引入相關(guān)標(biāo)簽的操作和spring一樣,關(guān)鍵在于導(dǎo)入dubbo的schema。但是我們要怎么寫(xiě)呢?任何官方通常都會(huì)給出相關(guān)說(shuō)明文檔,所以我們?nèi)サ絛ubbo的官網(wǎng)查找。

進(jìn)入到官網(wǎng)之后,我們直接ctrl+F,打開(kāi)頁(yè)面關(guān)鍵詞搜索,輸入 "Schema":

搜索出結(jié)果,上來(lái)就是我們要找的導(dǎo)入過(guò)程。

這里注意我們要添加的只有 xmlns:dubbo一行,以及xsi:schemaLocation中關(guān)于dubbo的xsd的成對(duì)映射。

到此這篇關(guān)于spring XML配置文件標(biāo)簽的文章就介紹到這了,更多相關(guān)spring XML配置文內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決springmvc項(xiàng)目中使用過(guò)濾器來(lái)解決請(qǐng)求方式為post時(shí)出現(xiàn)亂碼的問(wèn)題

    解決springmvc項(xiàng)目中使用過(guò)濾器來(lái)解決請(qǐng)求方式為post時(shí)出現(xiàn)亂碼的問(wèn)題

    這篇文章主要介紹了springmvc項(xiàng)目中使用過(guò)濾器來(lái)解決請(qǐng)求方式為post時(shí)出現(xiàn)亂碼的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Log4j如何屏蔽某個(gè)類(lèi)的日志打印

    Log4j如何屏蔽某個(gè)類(lèi)的日志打印

    這篇文章主要介紹了Log4j如何屏蔽某個(gè)類(lèi)的日志打印,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot項(xiàng)目中使用Mockito的示例代碼

    SpringBoot項(xiàng)目中使用Mockito的示例代碼

    這篇文章主要介紹了SpringBoot項(xiàng)目中使用Mockito的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Java?NIO中四大核心組件的使用詳解

    Java?NIO中四大核心組件的使用詳解

    Java?NIO(New?IO)是Java?1.4版本中引入的一套全新的IO處理機(jī)制,而NIO提供了四個(gè)核心組件:Channel、Buffer、Selector和SelectionKey,本文就來(lái)簡(jiǎn)單講講這四大組件的使用吧
    2023-05-05
  • Java環(huán)境下高德地圖Api的使用方式

    Java環(huán)境下高德地圖Api的使用方式

    這篇文章主要介紹了Java環(huán)境下高德地圖Api的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Idea代理設(shè)置與Java程序的代理設(shè)置方式

    Idea代理設(shè)置與Java程序的代理設(shè)置方式

    文章總結(jié):學(xué)習(xí)WebService時(shí),使用Fiddler抓取包數(shù)據(jù),發(fā)現(xiàn)Idea代理設(shè)置與Java程序代理設(shè)置不同,Java程序需要在發(fā)送請(qǐng)求前設(shè)置代理,代碼如下
    2025-01-01
  • SpringBoot實(shí)現(xiàn)在一個(gè)模塊中引入另一個(gè)模塊

    SpringBoot實(shí)現(xiàn)在一個(gè)模塊中引入另一個(gè)模塊

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)在一個(gè)模塊中引入另一個(gè)模塊的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的長(zhǎng)輪詢(xún)的示例代碼

    Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的長(zhǎng)輪詢(xún)的示例代碼

    長(zhǎng)輪詢(xún)是與服務(wù)器保持即時(shí)通信的最簡(jiǎn)單的方式,它不使用任何特定的協(xié)議,例如 WebSocket ,所以也不依賴(lài)于瀏覽器版本等外部條件的兼容性。本文將用Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的長(zhǎng)輪詢(xún),需要的可以參考一下
    2022-08-08
  • Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例

    Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例

    本文主要介紹了Java中xxl-job實(shí)現(xiàn)分片廣播任務(wù)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 一文搞懂Java正則表達(dá)式的使用

    一文搞懂Java正則表達(dá)式的使用

    正則表達(dá)式,又稱(chēng)規(guī)則表達(dá)式,是一種文本模式。正則表達(dá)式使用單個(gè)字符串來(lái)描述、匹配一系列匹配某個(gè)句法規(guī)則的字符串,通常被用來(lái)檢索、替換那些符合某個(gè)模式(規(guī)則)的文本。本文將通過(guò)示例為大家詳細(xì)說(shuō)說(shuō)Java正則表達(dá)式的使用,感興趣的可以了解一下
    2022-08-08

最新評(píng)論