1. 程式人生 > >Spring配置檔案之引入名稱空間

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檔案看看,這裡面也寫了較多的名稱空間,可供拷貝。