xml在spring中
平时用的最多的框架莫过Spring,但就算用了怎么久也一直对Spring配置文件的头部那一堆的XML Schema云里雾里的。
今天就来好好整整。俗话说,岁月是把杀猪刀,说不定哪天又忘了,好记性不如烂笔头啊,今天就记记。。
先来看看最初的版本:
xml代码:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
3 "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
4 <beans>
5
6 </beans>
7
8
9 说明:
10 1、第一行表示xml声明,任何格式良好的xml文档都必须第一行是声明。相当于告诉解析器这个是xml文档,你给我用xml解析器解析。
11
12 2、dtd声明,表示该xml里的元素和属性等需符合spring-beans-2.0.dtd这个文档类型定义标准。
13
14
15
16 DTD:文件的文件型别定义(Document Type Definition)可以看成一个或者多个 XML 文件的模板,在这里可以定义 XML 文件中
的元素、元素的属性、元素的排列方式、元素包含的内容等等。
因为DTD的一些局限性,以及XML Schema对数据类型和命名空间的支持。XML Schema很快会将 DTD 取而代之
被XML Schema 取代后的Spring 配置:
Xml代码:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
4 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
5 xsi:schemaLocation="
6 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
7 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
8 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
9 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
10
11 </beans>
12
13
14 XML Schema命名空间作用:
15 1、避免命名冲突,像Java中的package一样
16
17 2、将不同作用的标签分门别类(像Spring中的tx命名空间针对事务类的标签,context命名空间针对组件的标签)
18
19
20 代码解释:
21 1、xmlns="http://www.springframework.org/schema/beans"
22 声明xml文件默认的命名空间,表示未使用其他命名空间的所有标签的默认命名空间。
23
24 2、xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
25 声明XML Schema 实例,声明后就可以使用 schemaLocation 属性了
26
27 3、xmlns:aop="http://www.springframework.org/schema/aop"
28 声明前缀为aop的命名空间,后面的URL用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。
当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
29
30 4、xsi:schemaLocation="
31 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
32 这个从命名可以看出个大概,指定Schema的位置这个属性必须结合命名空间使用。这个属性有两个值,第一个值表示需要使用的命名空间。第二个
值表示供命名空间使用的 XML schema 的位置
33
34
35 所以我们需要什么样的标签的时候,就引入什么样的命名空间和Schema 定义就可以了。
另外形式良好的xml文档必须遵守的一些语法规则:
1、XML文件第一行必须是XML声明
2、XML文档必须有根元素
3、XML文档必须有关闭标签
4、XML文档标签元素必须正确的嵌套
5、标签区分大小写
6、属性必须加引号
转载:https://www.iteye.com/blog/iswift-1657537
参考文档:
xml教程:https://www.runoob.com/xml/xml-tutorial.html
DTD教程:https://www.runoob.com/dtd/dtd-tutorial.html
XML Schema教程:https://www.runoob.com/schema/schema-tutorial.html
xml在spring中的更多相关文章
- spring 中 hibernate 的 2种 配置方式(新旧 2种方式)
Spring对hibernate配置文件hibernate.cfg.xml的集成,来取代hibernate.cfg.xml的配置 Spring对hibernate配置文件hibernate.cfg.x ...
- Spring中加载xml配置文件的六种方式
Spring中加载xml配置文件的六种方式 博客分类: Spring&EJB XMLSpringWebBeanBlog 因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装 ...
- Spring中加载ApplicationContext.xml文件的方式
Spring中加载ApplicationContext.xml文件的方式 原文:http://blog.csdn.net/snowjlz/article/details/8158560 1.利用Cla ...
- spring中解析xml
解析xml有SAX,Stax,dom等方式,那么spring中是如何解析xml文件的呢? Document doc = this.documentLoader.loadDocument( inputS ...
- web.xml中配置Spring中applicationContext.xml的方式
2011-11-08 16:29 web.xml中配置Spring中applicationContext.xml的方式 使用web.xml方式加载Spring时,获取Spring applicatio ...
- 【转】web.xml中的contextConfigLocation在spring中的作用
一.spring中如何使用多个xml配置文件 1.在web.xml中定义contextConfigLocation参数,Spring会使用这个参数去加载所有逗号分隔的xml文件,如果没有这个参数,sp ...
- Spring中利用applicationContext.xml文件实例化对象和调用方法
Spring中实例化对象和调用方法入门 1.jar包和xml的准备 已上传至百度云盘,链接: https://pan.baidu.com/s/1CY0xQq3GLK06iX7tVLnp3Q 提取码: ...
- Spring,SpringMvc配置常见的坑,注解的使用注意事项,applicationContext.xml和spring.mvc.xml配置注意事项,spring中的事务失效,事务不回滚原因
1.Spring中的applicationContext.xml配置错误导致的异常 异常信息: org.apache.ibatis.binding.BindingException: Invalid ...
- 【Spring】28、Spring中基于Java的配置@Configuration和@Bean用法.代替xml配置文件
Spring中为了减少xml中配置,可以生命一个配置类(例如SpringConfig)来对bean进行配置. 一.首先,需要xml中进行少量的配置来启动Java配置: <?xml version ...
随机推荐
- Spring Boot 第一弹,问候一下世界!!!
持续原创输出,点击上方蓝字关注我吧 目录 前言 什么是Spring Boot? 如何搭建一个Spring Boot项目? 第一个程序 Hello World 依赖解读 什么是配置文件? 什么是启动类? ...
- Mysql的ONLY_FULL_GROUP_BY
今天在测试环境遇到一个问题,本地测试是没有问题,在测试环境sql报错了: nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntax ...
- Oracle复习(复习精简版v1.0)
自己没记不住的,超基础Oracle知识,新手可以看一下. 大多数例子是用scott用户中的emp表完成 排序:order by 列名 desc是降序,默认是升序: update 表名 set 列 ...
- centos7中nfs共享的配置方法
NFS是Network File System的缩写,即网络文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下. 一.nfs为什么需要RPC? 因为NFS支持的功能很多,不同 ...
- JVM 第二篇:垃圾收集器以及算法
本文内容过于硬核,建议有 Java 相关经验人士阅读. 0. 引言 一说到 JVM ,大多数人第一个想到的可能就是 GC ,今天我们就来聊一聊和 GC 关系最大的垃圾收集器以及垃圾收集算法,希望能通过 ...
- rxjs入门5之创建数据流
一 创建同步数据流 1.creat Observable.create = function (subscribe) { return new Observable(subscribe); }; 2. ...
- Android 10不能使用uiautomatorviewer定位元素的终极解决方法
Android app 元素定位除了使用Appium Inspector 外,还可以使用Android SDK 里tools中的uiautomatorviewer 工具.但今天打算使用 uiautom ...
- 多测师讲解自动化 _rf 变量_高级讲师肖sir
rf变量 log 打印全局变量 列表变量: 字典变量: 查看当前工程下的变量 紫色表示变量名有误 设置全局变量 设置列表变量 设置字段变量 关键字书写格式问题
- Springboot+Redis(发布订阅模式)跨多服务器实战
一:redis中发布订阅功能(http://www.redis.cn/commands.html#pubsub) PSUBSCRIBE pattern [pattern -]:订阅一个或者多个符合pa ...
- 0-完全开源的 Vue.js 入门级教程:HelloVue,发车啦!
本教程基于 Vue.js 2.x 作者:HelloGitHub-追梦人物 欢迎来到 HelloVue-todo-tutorial,这个教程将手把手教你从零开始使用 Vue 搭建一个 Todo(待办事项 ...