以前有对xsd(也就是schema文件)小做研究,有个小困惑,就是我们定义的元素只能使用定义的哪一些标签,比如<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的引用不需要加版本号,不加版本号使用的xsd文件就是最新的,他是从classpath中获取的。spring读取校验xsd是先从本地classpath读取,失败才从网络上读取。

Spring的beans标签下可以有其他标签相关推荐

  1. spring源码深度解析— IOC 之 默认标签解析(下)

    默认标签中的自定义标签解析 注册解析的BeanDefinition 通过beanName注册BeanDefinition 通过别名注册BeanDefinition alias标签的解析 import标 ...

  2. 标签系列一:spring 中beans解释以及beans标签里面的属性

    一.beans解释: 英文解释:The top level (typically root) element. Allows the definition of default values for ...

  3. 【Spring源码】4. 自己搞个标签?~自定义标签保姆级全过程(图解向,堆图预警)

    [Spring源码系列- IOC] 1 [Spring源码]0.安装Gradle环境 2 [Spring源码]1.下载与编译_pom relocation to an other version nu ...

  4. Spring精华问答 | 什么是Spring inner beans?

    Spring框架是一个开源的Java平台,它提供了非常容易,非常迅速地开发健壮的Java应用程序的全面的基础设施支持.今天就让我们来看看关于Spring的精华问答吧. 1 Q:请解释Spring Be ...

  5. Spring框架基础(2)----Bean的创建及标签属性

    一.实例化Bean的三种方式 ⽅式⼀:使用无参构造函数 在默认情况下,它会通过反射调⽤⽆参构造函数来创建对象.如果类中没有无参构造函数,将创建失败. <bean id="userSer ...

  6. 02HTML标签(下)

    1.表格标签 表格是实际开发中非常常用的标签: 表格的主要作用 表格的基本语法 1.1 表格的主要作用 表格的主要作用用于显示.展示数据的.因为它可以让数据显示的非常规整,可读性非常好.特别是后台显示 ...

  7. 火狐浏览器下点击a标签时出现虚线的解决方案

    火狐浏览器下点击a标签时出现虚线的解决方案 参考文章: (1)火狐浏览器下点击a标签时出现虚线的解决方案 (2)https://www.cnblogs.com/lhyhappy365/p/595646 ...

  8. spring mvc项目中利用freemarker生成自定义标签

    2019独角兽企业重金招聘Python工程师标准>>> spring mvc项目中利用freemarker生成自定义标签 博客分类: java spring mvc +freemar ...

  9. 随手记一次用C#正则表达式获取下拉菜单html标签select以及相关属性值

    随手记一次用C#正则表达式获取下拉菜单html标签<select>以及相关属性值 1:有如下html: .................. <select id="aaa ...

最新文章

  1. 【深度学习】利用一些API进行图像数据增广
  2. Spring官网改版后下载方式
  3. Css 特殊或不常用属性
  4. Istio流量管理实践之(5): 使用cert-manager部署Istio自定义入口网关及进行证书管理...
  5. micropython lcd触摸屏显示中文_基于Micropython的天气显示 进程帖
  6. pyside2 镜像安装_pyside2 镜像安装_【PySide2学习笔记】0_下载安装
  7. javascript-字典形态对象与数组形态对象
  8. SimpleDateFormat线程不安全及解决方案
  9. mysql之 mysql 5.6不停机主从搭建(一主一从基于日志点复制)
  10. Mobileye/博世/大陆智驾份额「持续下滑」,本土供应商「起势」
  11. Gdiplus.dll下载+丢失修复
  12. 【无标题】全国矢量地图下载
  13. java去除对象属性空格_JAVA 对象中去除空格
  14. 电信中兴f452光猫路由改桥接最简单的方式,亲自体验成功。
  15. ipa在线安装搭建_iphone直接安装ipa文件怎么做?
  16. 参观微软亚洲研究院有感
  17. lol服务器显示40ms,一个简单insert 语句执行 40ms 原因剖析
  18. ios android的中文翻译,苹果 iOS 14 Beta反向翻译,拒不承认iOS不如安卓
  19. 菜鸟到大神的上位历程,即学即用走向人生巅峰
  20. 隔行扫描, 逐行扫描

热门文章

  1. 多容器,Nginx容器灵活切换PHP版本!同时运行多个PHP容器
  2. nginx upstream 模块详解
  3. 信用评分系统运行原理上篇
  4. maven的java web项目启动找不到Spring ContextLoaderListener的解决办法
  5. 交易引擎的对账状态为空的处理方式
  6. 文本编辑器_markdown编辑器与富文本编辑器优缺点比较
  7. X86 CPU特性之(2)-eagerfpu
  8. golang开发效率神器汇总
  9. 从BIO、NIO到Netty
  10. Redis数据结构之列表