Spring名稱空間解析

SportCloud發表於2016-11-30

spring 整合了各種工具,並且spring提供了對各種工具的xml scheme 的配置方式,簡化了開發。

  <?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: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-2.5.xsd  
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd  
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">  
          
</beans>  

首先

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

是必須存在的,可以從spring的文件和例子中查詢到,
xsi:schemaLocation 指定了用於解析和校驗xml的定義檔案(xsd)的位置。
我們以新增aop名稱空間為例:
在spring.jar檔案中的META—INF目錄中提供了spring.schemas 檔案,這個檔案指定了提供支援的功能的xml元素配置的名稱空間定義檔案的位置,在這個檔案中我們可以找到aop的位置:

 http://www.springframework.org/schema/aop/spring-aop-2.0.xsd=org/springframework/aop/config/spring-aop-2.0.xsd  
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd=org/springframework/aop/config/spring-aop-2.5.xsd  
http://www.springframework.org/schema/aop/spring-aop.xsd=org/springframework/aop/config/spring-aop-2.5.xsd  

那麼我們可以在spring.jar檔案的對應目錄中找到這些xsd檔案,開啟檔案以後,
可以看到標籤:

<xsd:schema xmlns="http://www.springframework.org/schema/aop"  
xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
xmlns:beans="http://www.springframework.org/schema/beans"  
xmlns:tool="http://www.springframework.org/schema/tool"  
targetNamespace="http://www.springframework.org/schema/aop"  
elementFormDefault="qualified"  
attributeFormDefault="unqualified">  

那麼第一個xmlns就是要引進的名稱空間,但是在引進applicationContext.xml之前需要修改為:

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

之後新增入applicationContext.xml檔案中,且一定要放置於xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”之後,順序不能錯。
之後需要在xsi:schemaLocation 中新增位置:

http://www.springframework.org/schema/aop(空格)http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  

而/spring-aop-2.5.xsd就是aop的元素的定義的檔名

轉自:zhb0917

相關文章