1. 程式人生 > >Spring 基於XML配置

Spring 基於XML配置

ide 文檔 聲明 不同 schema 很好 ng2 補全 解析器

基於XML的配置

對於基於XML的配置,Spring 1.0的配置文件采用DTD格式,Spring2.0以後采用Schema格式,後者讓不同類型的配罝擁有了自己的命名空間,使得配置文件更具擴展性。此外,Spring基於Schema 配置方案為許多領域的問題提供了簡化的配置方法,配置工作因此得到了大幅簡化。

采取基於 Schema的配置格式,文件頭的聲明會復雜一些,先看一個簡單的示例,如下

技術分享圖片

要了解文件頭所聲明的內容,需要學習一些 XML Schema 的知識。 Schema 在文檔根節點中通過 xmlns 對文檔所引用的命名空間進行聲明。在上面的代碼中定義了3個命名空間。

① 默認命名空間:它沒有空間名,用於 Spring Bean 的定義。
② xsi 標準命名空間:這個命名空間用於為每個文檔中的命名空間指定相應的Schema 樣式文件,是W3C定義的標準命名空間。
③ aop 命名空間:這個命名空間是 Spring 配置 AOP 的命名空間,即一種自定義的命名空間。

命名空間的定義分為兩個步驟:第一步指定命名空間的名稱:第二步指定命名空間的 Schema 文檔格式文件的位罝,用空格或回車換行進行分隔

在第一步中,需要指定命名空間的縮略名和全名,請看下面配置所定義的命名空間:

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

aop 為命名空間的別名,一般使用簡潔易記的名稱,文檔後面的元素可通過命名空間別名加以區分,如<aop:config/>等。而http://www.springframework.org/schema/aop為空間的全限定名,習慣上用文檔發布機構官方網站和相關網站目錄作為全限定名,這種命名方式既可以標識文檔所屬的機構,又可以很好地避免重名的問題。但從XML Schema 語法來說,別名和全限定名都可以任意命名。

如果命名空間的別名為空,則表示該命名空間為文檔默認命名空間。文檔中無命名空間前綴的元素都屬於默認命名空間,如< beans/>、<bean/>等都域於在①處定義的默認命名空間。

在第二步中,為每個命名空間指定了對應的 Schema 文檔格式的定義文件,定義的語法如下:

<命名空間1>空格<命名空間1 Schema 文件>空格<命名空間2>空格<命名空間2 Schema 文件>

命名空間使用全限定名,每個組織機構在發布 Schema 文件後,都會為該 Schema文件提供一個引用的 URL 地址,一般使用這個URL 地址指定命名空間對應的 Schema文件。命名空間名稱和對應的 Schema 文件地址之間使用空格或回車分隔,不同的命名空間之間也使用這種分隔方法。

指定命名空間的 Schema 文件地址有兩個用途:其一, XML 解析器可以獲取 Schema文件並對文檔進行格式合法性驗證;其二,在開發環境下, IDE 可以引用 Schema 文件對文檔編輯提供誘導功能(自動補全功能)。當然,這個 Schema 文件的遠程地址並非一定能夠訪問,一般的 IDE 都提供了從本地類路徑查找 Schema 文件的功能,只有找不到時才從遠程加載。

Spring 4.0 配置的 Schema 文件放置在各模塊 JAR 文件內一個名為 config 的目錄下。

技術分享圖片

技術分享圖片

Spring 基於XML配置