基于XML的配置

对于基于XML的配置,Spring 1.0的配置文件采用DTD格式,Spring2.0以后采用Schema格式,后者让不同类型的配罝拥有了自己的命名空间,使得配置文件更具扩展性。此外,Spring基于Schema 配置方案为许多领域的问题提供了简化的配置方法,配置工作因此得到了大幅简化。

采取基于 Schema的配置格式,文件头的声明会复杂一些,先看一个简单的示例,如下

要了解文件头所声明的内容,需要学习一些 XML Schema 的知识。 Schema 在文档根节点中通过 xmlns 对文档所引用的命名空间进行声明。在上面的代码中定义了3个命名空间。

① 默认命名空间:它没有空间名,用于 Spring Bean 的定义。
② xsi 标准命名空间:这个命名空间用于为每个文档中的命名空间指定相应的Schema 样式文件,是W3C定义的标准命名空间。
③ aop 命名空间:这个命名空间是 Spring 配置 AOP 的命名空间,即一种自定义的命名空间。

命名空间的定义分为两个步骤:第一步指定命名空间的名称:第二步指定命名空间的 Schema 文档格式文件的位罝,用空格或回车换行进行分隔

在第一步中,需要指定命名空间的缩略名和全名,请看下面配置所定义的命名空间:

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

aop 为命名空间的別名,一般使用简洁易记的名称,文档后面的元素可通过命名空间别名加以区分,如<aop:config/>等。而http://www.springframework.org/schema/aop为空间的全限定名,习惯上用文档发布机构官方网站和相关网站目录作为全限定名,这种命名方式既可以标识文档所属的机构,又可以很好地避免重名的问题。但从XML Schema 语法来说,别名和全限定名都可以任意命名。

如果命名空间的别名为空,则表示该命名空间为文档默认命名空间。文档中无命名空间前缀的元素都属于默认命名空间,如< beans/>、<bean/>等都域于在①处定义的默认命名空间。

在第二步中,为每个命名空间指定了对应的 Schema 文档格式的定义文件,定义的语法如下:

<命名空间1>空格<命名空间1 Schema 文件>空格<命名空间2>空格<命名空间2 Schema 文件>

命名空间使用全限定名,每个组织机构在发布 Schema 文件后,都会为该 Schema文件提供一个引用的 URL 地址,一般使用这个URL 地址指定命名空间对应的 Schema文件。命名空间名称和对应的 Schema 文件地址之间使用空格或回车分隔,不同的命名空间之间也使用这种分隔方法。

指定命名空间的 Schema 文件地址有两个用途:其一, XML 解析器可以获取 Schema文件并对文档进行格式合法性验证;其二,在开发环境下, IDE 可以引用 Schema 文件对文档编辑提供诱导功能(自动补全功能)。当然,这个 Schema 文件的远程地址并非一定能够访问,一般的 IDE 都提供了从本地类路径查找 Schema 文件的功能,只有找不到时才从远程加载。

Spring 4.0 配置的 Schema 文件放置在各模块 JAR 文件内一个名为 config 的目录下。

Spring 基于XML配置的更多相关文章

  1. Spring 基于xml配置方式的事务

    参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为 ...

  2. Spring 基于xml配置方式的事务(14)

    参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为 ...

  3. Spring 基于xml配置方式的AOP

    我们具体用代码来说明: 1.ArithmeticCalculator.java package com.proc; public interface ArithmeticCalculator { in ...

  4. Spring 基于xml配置方式的AOP(8)

    1.ArithmeticCalculator.java 1 package com.proc; 2 3 public interface ArithmeticCalculator { 4 int ad ...

  5. Spring基于XML配置AOP

    目录结构: D:\Java\IdeaProjects\JavaProj\SpringHelloWorld\src\cn\edu\bjut\service\StudentService.java pac ...

  6. 一步一步深入spring(6)--使用基于XML配置的spring实现的AOP

    上节我们提到了使用基于注解实现的AOP,这节我们将用基于xml配置的方式来实现的AOP. 1.首先建立一个类,作为切面类,这个类主要用来实现注解中各种通知要实现的方法. package com.yan ...

  7. Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AOP编程比较

    本篇博文用一个稍复杂点的案例来对比一下基于XML配置与基于AspectJ注解配置的AOP编程的不同. 相关引入包等Spring  AOP编程准备,请参考小编的其他博文,这里不再赘述. 案例要求: 写一 ...

  8. Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用

    Unit03: Spring Web MVC简介 . 基于XML配置的MVC应用 . 基于注解配置的MVC应用 springmvc (1)springmvc是什么? 是一个mvc框架,用来简化基于mv ...

  9. Spring Boot 框架下使用MyBatis访问数据库之基于XML配置的方式

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...

随机推荐

  1. 设计模式のStatePattern(状态模式)----行为模式

    一.产生背景 在面向对象软件设计时,常常碰到某一个对象由于状态的不同而有不同的行为.如果用if else或是switch case等方法处理,对象操作及对象的状态就耦合在一起,碰到复杂的情况就会造成代 ...

  2. Session的生命周期之关于浏览器关闭后的Session

    Session是JSP的九大内置对象中的一个,它可以保存当前用户的各种的状态信息. 初次接触Session时认为Session的生命周期是从浏览器打开一个窗口发送请求开始,到浏览器窗口关闭结束.其实这 ...

  3. 并发控制--Concurrency control--乐观、悲观及方法

    In information technology and computer science, especially in the fields of computer programming, op ...

  4. Springboot监控之一:SpringBoot四大神器之Actuator

    介绍 Spring Boot有四大神器,分别是auto-configuration.starters.cli.actuator,本文主要讲actuator.actuator是spring boot提供 ...

  5. UVA1025-A Spy in the Metro(动态规划)

    Problem UVA1025-A Spy in the Metro Accept: 713  Submit: 6160Time Limit: 3000 mSec Problem Descriptio ...

  6. mysql 使用正则表达式查询

    SELECT * FROM `qq` where qq_name!='no' and qq_gender='女' and qq_location!='no' and qq_location!='' a ...

  7. 微信硬件平台(八) 4 ESP8266通过微信公众号给用户推送消息

    https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=自己申请微信公众号的TOKEN 输出结果:  由于aRDUINO串 ...

  8. (二 -3-3) 天猫精灵接入Home Assistant-自动发现Mqtt设备-自动生成配置信息

    http://www.hassmart.com/products/switches/#tab=config switch: - platform: mqtt name: keting state_to ...

  9. autoware

    在 Autoware目录下执行 git checkout 将版本切换到1.10.0 因为最新版驱动有问题然后执行 sudo apt-get update sudo apt-get install -y ...

  10. 对Android系统权限的认识

    Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制 Android系统权限相关的内容 (一)linux文件系统上的权限 -rwxr-x--x ...