码迷,mamicode.com
首页 > 编程语言 > 详细

Spring的beans标签下可以有其他标签

时间:2016-05-03 02:01:51      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

  以前有对xsd小做研究,有个小困惑,就是我们定义的元素只能使用定义的哪一些标签,比如<beans>下面就只能有自定义的哪一些,那为什么在引入<context>、<aop>等命名空间之后就能使用上诉2个标签呢?之前一直嫌弃spring的xsd太长,第一眼看上去比较混乱,今天鼓起勇气看了一下<beans>的xsd文件,看了之后发现其实还是非常简单的,所使用的无外乎也就是xsd那些东西。

  那么,<beans>标签下对元素的定义中有一段是这样子的:

<xsd:sequence>
  <xsd:element ref="description" minOccurs="0" /> 
- <xsd:choice minOccurs="0" maxOccurs="unbounded">
  <xsd:element ref="import" /> 
  <xsd:element ref="alias" /> 
  <xsd:element ref="bean" /> 
  <xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" /> 
  </xsd:choice>
  </xsd:sequence>

  倒数第三行:表示<beans>下面可以包含任意标签,来自其他命名空间的。这就解释了上面的问题。

  另外:xmlns:p="http://www.springframework.org/schema/p"这个命名空间能够让<bean>的属性<property>标签使用简写,如:

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage" value="com.mook.mybatis.core.mapper" />
    </bean>

  就可以写成:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" p:basePackage="com.mook.mybatis.core.mapper"/>

  这种方式,但是一般来说没什么必要,少不了几行,另外简写方式不够灵活。一般来说,知道有这么回事就够了,使用前面的方式就行。

  再者:spring的命名空间对xsd的引用不需要加版本号,不加版本号一般来说就是最新的。spring读取校验xsd是先从本地classpath读取,失败才从网络上读取。

Spring的beans标签下可以有其他标签

标签:

原文地址:http://www.cnblogs.com/dreamroute/p/5453590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!