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

spring XML配置文件標簽詳解

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

spring的XML配置文件的標簽大體可以分為兩種:

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

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

命名空間、xsd介紹

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

XML Schema 語言是用來定義xml結(jié)構(gòu)的。簡稱xsd(XML Schema Definition)

如下圖,這是一個默認的spring Bean的XML配置文件的標頭:

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

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

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

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

1、查看schema文檔,找到根元素,在xml中寫出來

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

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

4、聲明schemaLocation哪里來的,一般都是某個標準(寫法上都是先寫命名空間+具體文件的位置,成對)

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

例如context組件,在使用注解和配置類來平替bean.xml配置文件的時候,我們就需要使用到context文件的標簽。詳細的可以去看我的另一篇文章:

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

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

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

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

然后是測試類運行:

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

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

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

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

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

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

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

我們編寫兩個bean的配置文件:

其中,我們的bean1文件中沒有配置user,但是我們在bean2文件中配置了user,我們在bean1引入bean2,我們就可以得到bean2里面的配置了。

測試類:

運行結(jié)果:

前面我們講到了多環(huán)境常搭配<import>,也就是在這里。我們在主配置文件里面,不再直接在配置多環(huán)境的<beans>標簽下編寫內(nèi)容,而是把內(nèi)容編寫到另一個單獨的配置文件里面,然后在主配置文件下面的多環(huán)境使用<import>導(dǎo)入它。

引入自定義標簽

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • 解決springmvc項目中使用過濾器來解決請求方式為post時出現(xiàn)亂碼的問題

    解決springmvc項目中使用過濾器來解決請求方式為post時出現(xiàn)亂碼的問題

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

    Log4j如何屏蔽某個類的日志打印

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

    SpringBoot項目中使用Mockito的示例代碼

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

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

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

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

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

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

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

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

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

    Java實現(xiàn)一個簡單的長輪詢的示例代碼

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

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

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

    一文搞懂Java正則表達式的使用

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

最新評論