這個就要從XML說了,Spring的配置管理能夠利用XML方式進行配置,而XML裏面就有命名空間這個概念。。實際上就和標籤的意思有點像 你給一個命名空間之後,這個XML文件裏面就能夠用那個命名空間上下文裏面的標籤了。簡化配置用,你能夠去看看Spring AOP用命名空間和不用命名空間的配置有什麼區別。spring
使用Spring 的命名空間p 裝配屬性spring-mvc
使用<property> 元素爲Bean 的屬性裝配值和引用並不太複雜。儘管如此,Spring 的命名空間p 提供了另外一種Bean 屬性的裝配方式,該方式不須要配置如此多的尖括號。mvc
命名空間p 的schema URI 爲http://www.springframework.org/schema/p。若是你想使用命名空間p,只須要在Spring 的XML 配置中增長以下一段聲明:ui
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:p="http://www.springframework.org/schema/p"
- 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-3.0.xsd">
經過此聲明,咱們如今可使用p: 做爲<bean> 元素全部屬性的前綴來裝配Bean 的屬性。爲了示範,咱們從新聲明瞭kenny Bean 的配置:code
- <bean id="kenny" class="com.springinaction.springidol.Instrumentalist"
- p:song = "Jingle Bells"
- p:instrument-ref = "saxophone" />
p:song 屬性的值被設置爲「Jingle Bells」,將使用該值裝配song 屬性。一樣,p:instrument-ref 屬性的值被設置爲「saxophone」,將使用一個ID 爲saxophone 的Bean 引用來裝配instrument 屬性。-ref 後綴做爲一個標識來告知Spring 應該裝配一個引用而不是字面值。xml
選擇<property> 仍是命名空間p 取決於你,它們是等價的。命名空間p 的最主要優勢是更簡潔。在固定寬度的紙張上編寫樣例時,選擇命名空間相對更合適。所以,在本書中你可能看到我不時的使用命名空間p,特別是水平頁面空間比較緊湊時。blog
Spring 的配置文件中,有一個配置文件頭:get
<beans xmlns=」http://www.springframework.org/schema/beans」
xsi:schemaLocation=」
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd」>io
這代表,在當前配置文件中,使用的是beans命名空間,能夠直接使用<bean id=」">。class
若是要在這個配置文件中使用mvc命名空間下的annotation-driven元素,要寫爲<mvc:annotation-driven/>,固然,還須要告訴xml解析器,mvc這個命名空間是在哪裏定義的,以便解析器可以驗證當前文件中mvc:開頭的元素是否符合mvc命名空間的:
<beans xmlns=」http://www.springframework.org/schema/beans」
xmlns:mvc=」http://www.springframework.org/schema/mvc」
xsi:schemaLocation=」
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd」>
這樣解析器在解釋mvc:命名空間的時候,會參考spring-mvc-3.0.xsd這個文件來檢驗<mvc:annotation-driven/>是否合格。