Spring配置檔案之引入名稱空間
如何為Spring配置檔案引入名稱空間是我在初接觸Spring時有點頭疼的問題。現在稍作整理
(一)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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd" >
</beans>
以上就是最簡格式。對於XML檔案,xmlns、xmlns:xsi、xsi:schemaLocation一般都是必須的。對於Spring配置檔案,beans這個名稱空間是不可缺少的,並且會把beans作為預設的名稱空間。
(二)關於XML檔案
(1)在XML中,用xmlns或者xmlns:prefix指定名稱空間
(2)xmlns指定的名稱空間是預設的名稱空間,xmlns=”http://www.springframework.org/schema/beans”表示預設名稱空間
(3)xmlns:xsi這個名稱空間的prefix為xsi,因此這個名稱空間裡面的元素或者屬性就必須要以xsi:這種方式來寫,比如schemaLocation就是他的一個屬性,所以寫成xsi:schemaLocation
(4)xmlns是該XML檔案預設的名稱空間;
xmlns:xsi是指該XML檔案遵守xml規範;
xsi:schemaLocation是指具體用到的schema資源
(5)一般地,xml檔案都需要寫xmlns, xmlns:xsi, xsi:schemaLocation這3項。
(三)beans已經引入,另引入aop,util,context,tx這4個名稱空間
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
</beans>
(四)名稱空間該怎麼寫?它對應的xsi:schemaLocation又該怎麼寫呢?
(1)在Spring4中,一共有如下名稱空間
(2)會把beans作為預設的名稱空間引入
xmlns="http://www.springframework.org/schema/beans"
(3)其他名稱空間的引入方式:xmlns:字首名
引入aop | xmlns:aop=”http://www.springframework.org/schema/aop” |
---|---|
引入context | xmlns:context=”http://www.springframework.org/schema/context” |
引入tx | xmlns:tx=”http://www.springframework.org/schema/tx” |
引入util | xmlns:util=”http://www.springframework.org/schema/util” |
引入aop之前:
引入aop之後:
(五)xsi:schemaLocation的寫法
先來觀察一下:
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd">
仔細觀察一下,還是可以發現規律的。
以 名稱空間aop為例:
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
①前一句是名稱空間,後一句是該名稱空間的schama位置
②http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 的含義:Spring原始碼包下,schema下,aop下的spring-aop-4.0.xsd檔案。在aop下有不同版本的xsd檔案,建議使用最新的吧
你可以開啟這些xsd檔案看看,這裡面也寫了較多的名稱空間,可供拷貝。