概述

Spring 的配置文件是用于指导 Spring 工厂进行Bean的生产、依赖关系注入及 Bean 实例分发的“图纸”,它是一个或多个标准的XML文档,J2EE 程序员必须学会并灵活应用这份“图纸”。

Spring 配置文件的一般结构

<beans><import  resource=“resource1.xml” /><bean id=“bean1” class=“***”></bean><alias alias=“bean2” name=“bean1” /></beans>
  • <beans>表示bean的开始和结束
  • <import  resource=“resource1.xml” />导入其它配置文件bean的定义,为了加载多个配置文件,当然也可以把这些文件构造成为一个数字,然后将这个数组传递给ApplicationContext实现加载多个配置文件。
  • <bean id=“bean1” class=“***”></bean>定义一个bean
  • <alias alias=“bean2” name=“bean1” />定义bean的别名

Spring容器启动基本条件

  • Spring 的框架类包
  • Bean 的配置信息
  • Bean 的实现类

Spring启动时,读取bean的配置信息,bean在Spring容器中生成相应的bean的注册表,然后根据注册表实例化bean,装配好bean之间的依赖关系,为上层应用提供准备就绪的运行环境。

Bean的配置信息(bean的元数据信息)

  • Bean 的实现类
  • Bean 的属性信息
  • Bean 的依赖关系 Spring根据依赖关系配置完成bean之间的装配
  • Bean 的行为配置 比如生命周期范围
  • Bean 的创建方式 通过构造器还是构造方法创建bean

基于XML的配置

Spring 的配置文件是基于XML格式的,Spring1.0的配置文件采用DTD格式,Spring2.0以后使用Schema的格式,后者让不同类型的配置拥有了自己的命名空间,是配置文件更具有扩展性。

采取基于Schema的配置格式,这种配置格式不可使用”定义使用哪种规范进行解析配置文件” 这段代码:<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd">,否则会出现编译不通过的异常。

示例代码如下

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd ">
<!-- 默认命名空间的配置 -->
<bean id = "person" class = "com.hudongwu.spring.chapter01.Person"/>
<!-- aop命名空间的配置 -->
<aop:config>
<aop:pointcut id="mycut" expression="execution(* com.hudongwu.spring.*(..))"/>
</aop:config> </beans>

上述代码释义

  • Schema在文档根节点中通过xmlns对文档当中的命名空间进行声明。
  • 在上面的代码当中定义了三个命名空间
    1. 默认命名空间xmlns="http://www.springframework.org/schema/beans",这个命名空间没有缩略名,用于Spring Bean的定义。
    2. xsi命名空间xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",这个命名空间用于为每个文档中命名空间指定相对应的Schema样式文件,是标准组织定义的标准命名空间。
    3. 名称为aop的自定义命名空间xmlns:aop="http://www.springframework.org/schema/aop",这个命名空间是Spring配置aop的命名空间,是用户自定义的命名空间。
  • 命名空间的自定义分为两个步骤
    1. 指定命名空间的名称,需要指定命名空间的缩略名和全限定名。缩略名一般使用简洁易记的名称,若未指定缩略名,则是默认命名空间;全限定名使用文档发布机构的官方网站和相关网站目录作为全限定名。
    2. 指定命名空间Schema文档样式文件的位置,用空格或回车进行分割。格式:命名空间全限定名+对应的Schema文件地址。
  • 上述代码中设置的xmlns:aop相当于第一步,aop为命名空间的缩略名,而http://www.springframework.org/schema/aop则为命名空间的全限定名;设置的xsi:schemaLocation相当于第二步。
  • 指定命名空间Schema文档样式文件的位置有两个用途
    1. xml解析器可以获取Schema文件,并对文档进行格式合法性验证;
    2. 在开发环境下,IDE对文档编辑器提供诱导功能
  • Spring的配置Schema文件分布在各模块类包中,如果模块拥有对应的Schema文件,则可以在模块类包中找到一个config目录,Schema文件就位于该目录中

Spring---配置文件概述的更多相关文章

  1. (转)Spring的概述

    http://blog.csdn.net/yerenyuan_pku/article/details/69663685 Spring的概述 什么是Spring 据度娘所载: Spring是一个开源框架 ...

  2. Spring IOC 概述

    Spring IOC 概述 IOC(Inversion of Control) 控制反转,也叫 DI(D_ependency injection_) 依赖注入.是一种设计思想.不过我并不同意所谓反转的 ...

  3. 你不知道的Spring配置文件

    Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的"图纸".Java EE程序员必须学会并灵活应用这份"图纸&quo ...

  4. Spring配置文件详解

      转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常有用 spring配置文件是用于指导Sp ...

  5. Hibernate SQL方言 (hibernate.dialect) Spring配置文件applicationContext.xml

    转自:http://www.cnblogs.com/wj-wangjun/archive/2009/10/21/1587624.html Hibernate SQL方言 (hibernate.dial ...

  6. Spring配置文件详解 - applicationContext.xml文件路径

    spring的配置文件applicationContext.xml的默认地址在WEB-INF下,只要在web.xml中加入代码 org.springframework.web.context.Cont ...

  7. Spring配置文件详解 – applicationContext.xml文件路径

    Spring配置文件详解 – applicationContext.xml文件路径 Java编程                 spring的配置文件applicationContext.xml的默 ...

  8. spring配置文件详解--真的蛮详细

    spring配置文件详解--真的蛮详细   转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常 ...

  9. Spring 配置文件详解 (以2.5为例)

    转载自:http://blog.csdn.net/zzjjiandan/article/details/22922847          Spring配置文件是用于指导Spring工厂进行Bean生 ...

  10. Spring配置文件外部化配置及.properties的通用方法

    摘要:本文深入探讨了配置化文件(即.properties)的普遍应用方式.包括了Spring.一般的.远程的三种使用方案. 关键词:.properties, Spring, Disconf, Java ...

随机推荐

  1. 使用swagger时遇到的问题

    后端写好接口后开始和前端进行联调,为了减少时间成本或者说是后端不想写文档,所以便想使用一套可以自动化生成api接口文档的工具,swagger正是可以解决这一需求.于是很早之前就想把swagger集成到 ...

  2. RabbitMQ的用户管理方法

    1. 用户管理用户管理包括增加用户,删除用户,查看用户列表,修改用户密码.相应的命令 (1) 新增一个用户 rabbitmqctl  add_user  Username  Password (2) ...

  3. 智能开关:orange pi one(arm linux)控制继电器

    大家都知道,继电器是用小电流去控制大电流运作的一种“自动开关”,在我们生活.工作中随处可见.现在的“智能家居”概念,有很多功能模块其实就是“智能开关”,远程开关.定时开关.条件触发开关等等. 下面介绍 ...

  4. DedeCms中出现Safe Alert: Request Error step 1/2 的解决方法

    dedecms安全警告:Safe Alert: Request Error step 2!不知道大家有没有发现这个现象.只从Dedecms官方公布了之前的版本有严重的漏洞以来,现在在仿站的时候都是采用 ...

  5. Android(java)学习笔记69:短信发送器

    1. 一般我们第一步都是先创建这个main.xml布局文件,这是良好的习惯: <?xml version="1.0" encoding="utf-8"?& ...

  6. 整数N分解,搭积木,离散数学中的母函数,ZOJ(1163)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1163 解题报告: 将整数N分解为:两个及以上的不重复的整数,最流 ...

  7. @RequestMapping,@ResponseBody,@RequestBody用法

    本文转载:http://blog.csdn.net/ff906317011/article/details/78552426 1.@RequestMapping 国际惯例先介绍什么是@RequestM ...

  8. kernighan lin算法

    这个算法主要用在网络节点的分割.他的思想是将一个网络节点图分割成两个相等的节点集合.为了连接两个社区的边权最小. step1:随机产生两个节点的集合A和B. step2:计算A和B中的每个节点的int ...

  9. 第38章 I2S—音频播放与录音输入—零死角玩转STM32-F429系列

    第38章     I2S—音频播放与录音输入 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...

  10. 复式记账中"借"与"贷"的理解

    财务常识中,复式记账法应用极广,公司采用的是它的借贷记账法.因此,深刻的理解"借"与"贷"的含义极其重要.  一切从历史说起. 起源: Credit  英文含义 ...