亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用spring配置文件.xml的頭文件

 更新時(shí)間:2024年01月19日 09:30:53   作者:nedjie  
這篇文章主要介紹了使用spring配置文件.xml的頭文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

前言

工作有一段時(shí)間了,每次自己創(chuàng)建項(xiàng)目寫(xiě)xml配置文件的時(shí)候,xml配置的頭部命名空間都是從別的項(xiàng)目拷貝過(guò)來(lái),或者上網(wǎng)拷貝的,從來(lái)也沒(méi)考慮過(guò)是什么意思,有什么用。

最近自己練習(xí),直接創(chuàng)建Spring Leagcy Project項(xiàng)目的時(shí)候,自動(dòng)下載的配置文件總會(huì)報(bào)錯(cuò),于是借此機(jī)會(huì),深入學(xué)習(xí)一下。

關(guān)于xml命名空間

XML 命名空間 是由國(guó)際化資源標(biāo)識(shí)符 (IRI) 標(biāo)識(shí)的 XML 元素和屬性集合;該集合通常稱作 XML“詞匯”。

在XML中,元素名稱是由開(kāi)發(fā)者定義的,當(dāng)兩個(gè)不同的文檔使用相同的元素名時(shí),就會(huì)發(fā)生命名沖突。

舉個(gè)簡(jiǎn)單的栗子,命名空間很像 Java 中的包,不同的包下面可以存放相同的類名,只要在引入類時(shí)前面加上類的包就可以避免同名類的沖突。

Spring常用配置頭

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">  
    
   <!-- 定義跳轉(zhuǎn)的文件的前后綴 ,視圖模式配置-->  
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">   
        <property name="prefix" value="/WEB-INF/view/" />  
        <property name="suffix" value=".jsp" />  
    </bean>  
</beans>

配置頭解析

xmlns="http://www.springframework.org/schema/beans"

聲明xml文件默認(rèn)的命名空間,初始化beans

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

聲明XML Schema實(shí)例,聲明后就可以使用schemaLocation屬性

xmlns:context="http://www.springframework.org/schema/context"

綁定context命名空間,綁定之后便可使用<context:component-scan base-package=""/>等context為前綴的的元素。

   xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">  

schemaLocation提供了一個(gè)xml 命名空間到對(duì)應(yīng)的XSD(Xml Schema Definition)文件的一個(gè)映射,它的值由一個(gè)或多個(gè)URI引用對(duì)組成,

兩個(gè)URI之間以空白符分隔(空格和換行均可)。

第一個(gè)URI是定義的 XML命名空間的值,第二個(gè)URI給出Schema文檔的實(shí)際位置,

Schema處理器將從這個(gè)位置讀取Schema文檔,該文檔的targetNamespace必須與第一個(gè)URI(XML命名空間的值)相匹配。

在xsi:schemaLocation后面配置的字符串都是成對(duì)的,前面的是命名空間的URI,后面是xsd文件的URI;

如何找到Spring命名空間

Spring的命名空間uri和xsd文件地址在Spring的依賴中都可以找到,以spring-context為例:

在spring-context的jar包里,有META-INF文件夾,如下

在spring.handlers中保存著spring-context的命名空間,對(duì)應(yīng)xml文件頭的命名空間

在spring.schemas中保存著對(duì)應(yīng)的xsd文件uri,以及在本地對(duì)應(yīng)的文件位置

Spring中xml文件的校驗(yàn)

Spring默認(rèn)在啟動(dòng)時(shí)是要從配置的命名空間的位置加載XSD文件來(lái)驗(yàn)證xml文件的,所以如果有的時(shí)候斷網(wǎng)了,或者一些開(kāi)源軟件切換域名,那么就很容易碰到應(yīng)用啟動(dòng)不了。

為了防止這種情況,Spring提供了一種機(jī)制,即默認(rèn)從本地加載XSD文件,當(dāng)本地沒(méi)有時(shí)才根據(jù)實(shí)際的URI去聯(lián)網(wǎng)獲得。

總結(jié)

現(xiàn)在對(duì)于spring配置文件的頭部有了一定的了解,以后也可以根據(jù)需求,添加對(duì)應(yīng)的命名空間,schemaLocation。

在寫(xiě)schemaLocation時(shí),命名空間后面對(duì)應(yīng)的xsd文件,可以不加版本號(hào),讓spring加載本地版本對(duì)應(yīng)的xsd文件。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • PC 端微信掃碼注冊(cè)和登錄實(shí)例

    PC 端微信掃碼注冊(cè)和登錄實(shí)例

    這篇文章主要介紹了PC 端微信掃碼注冊(cè)和登錄實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • java DecimalFormat常用方法詳解

    java DecimalFormat常用方法詳解

    這篇文章主要為大家詳細(xì)介紹了java DecimalFormat的常用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 簡(jiǎn)單了解SpringMVC緩存對(duì)靜態(tài)資源有什么影響

    簡(jiǎn)單了解SpringMVC緩存對(duì)靜態(tài)資源有什么影響

    這篇文章主要介紹了簡(jiǎn)單了解SpringMVC緩存對(duì)靜態(tài)資源有什么影響,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • CentOS8.2安裝Java 14.0.2的教程詳解

    CentOS8.2安裝Java 14.0.2的教程詳解

    這篇文章主要介紹了CentOS8.2安裝Java 14.0.2的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java中初始化List集合的八種方式匯總

    Java中初始化List集合的八種方式匯總

    List?是?Java?開(kāi)發(fā)中經(jīng)常會(huì)使用的集合,下面這篇文章主要給大家介紹了關(guān)于Java中初始化List集合的八種方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Java線程間協(xié)作wait、notify和notifyAll詳解

    Java線程間協(xié)作wait、notify和notifyAll詳解

    這篇文章主要介紹了Java線程間協(xié)作wait、notify和notifyAll詳解,在 Java 中可以用 wait、notify 和 notifyAll 來(lái)實(shí)現(xiàn)線程間的通信,盡管關(guān)于wait和notify的概念很基礎(chǔ),它們也都是Object類的函數(shù),但用它們來(lái)寫(xiě)代碼卻并不簡(jiǎn)單,,需要的朋友可以參考下
    2023-10-10
  • Mybatis通過(guò)Mapper代理連接數(shù)據(jù)庫(kù)的方法

    Mybatis通過(guò)Mapper代理連接數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了Mybatis通過(guò)Mapper代理連接數(shù)據(jù)庫(kù)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11
  • Dubbo?retries?超時(shí)重試機(jī)制的問(wèn)題原因分析及解決方案

    Dubbo?retries?超時(shí)重試機(jī)制的問(wèn)題原因分析及解決方案

    這篇文章主要介紹了Dubbo?retries?超時(shí)重試機(jī)制的問(wèn)題,解決方案是通過(guò)修改dubbo服務(wù)提供方,將timeout超時(shí)設(shè)為20000ms或者設(shè)置retries=“0”,禁用超時(shí)重試機(jī)制,感興趣的朋友跟隨小編一起看看吧
    2022-04-04
  • Spring動(dòng)態(tài)管理定時(shí)任務(wù)之ThreadPoolTaskScheduler解讀

    Spring動(dòng)態(tài)管理定時(shí)任務(wù)之ThreadPoolTaskScheduler解讀

    這篇文章主要介紹了Spring動(dòng)態(tài)管理定時(shí)任務(wù)之ThreadPoolTaskScheduler解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 解決spring-integration-mqtt頻繁報(bào)Lost connection錯(cuò)誤問(wèn)題

    解決spring-integration-mqtt頻繁報(bào)Lost connection錯(cuò)誤問(wèn)題

    這篇文章主要介紹了解決spring-integration-mqtt頻繁報(bào)Lost connection錯(cuò)誤問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論