Spring命名空间介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhushuai1221/article/details/53634265
     什么是spring命名空间?这个就要从XML说了,Spring的配置管理可以利用XML方式进行配置,而XML里面就有命名空间这个概念。。实际上就和标签的意思有点像 你给一个命名空间以后,这个XML文件里面就可以用那个命名空间上下文里面的标签了。简化配置用,你可以去看看Spring AOP用命名空间和不用命名空间的配置有什么区别。

   xmlns:content是为引用Spring的模块功能指定命名空间。其中的content是"http://www.springframework.org/schema/content"这个命名空间的简称,"http://www.springframework.org/schema/content"是命名空间的全称。必须在xsi中为命名空间指定对应的schema文件。

   xsi:schemaLocation 是为每个命名空间指定了对应的Schema文档,其定义的语法为:xsi:schemaLocation ="全称命名空间1 全称命名空间1对应的Schema文件空格"。
   首先xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance 是必须有的。
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的元素的定义的文件名。


Spring中所有的命名空间:

下载Spring源文件,解压后会有个schema目录,里面是所有Spring模块。如下图:









阅读更多

没有更多推荐了,返回首页