1、Spring容器

1)要使应用程序中的Spring容器成功启动,需要以下三方面的条件都具备:

  · Spring架构的类包都已经放在应用程序的类路径下;

  · 应用程序为Spring提供完备的Bean配置信息;

  · Bean的类都已经放到应用程序的类路径下。

2)Bean配置信息是Bean的元数据信息,它由以下4个方面组成:

  · Bean的实现类;

  · Bean的属性信息,如数据源的连接数、用户名、密码等;

  · Bean的依赖关系,Spring根据依赖关系配置完成Bean之间的装配;

  · Bean的行为配置,如生命周期范围及生命周期各过程的回调函数等。

3)Spring容器高层视图:

Bean的配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载、实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序进行调用。

2、Spring3.0的Schema表:

目录 说明
spring-beans-3.0.xsd [说明]:Spring3.0最主要的Schema,用于配置bean
[命名空间]:http://www.springframework.org/schema/beans
[Schema文件]:http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
spring-aop-3.0.xsd [说明]:AOP的配置定义的Schema
[命名空间]:http://www.springframework.org/schema/aop
[Schema文件]:http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
spring-tx-3.0.xsd [说明]:声明式事务配置定义的Schema
[命名空间]:http://www.springframework.org/schema/tx
[Schema文件]:http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
spring-mvc-3.0.xsd [说明]:MVC配置的Schema,是Spring3.0新增的
[命名空间]:http://www.springframework.org/schema/mvc
[Schema文件]:http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
spring-util-3.0.xsd [说明]:为简化某些复杂的标准配置提供的Schema
[命名空间]:http://www.springframework.org/schema/util
[Schema文件]:http://www.springframework.org/schema/util/spring-util-3.0.xsd
spring-jee-3.0.xsd [说明]:为简化Java EE中EJB、JNDI等功能的配置而提供的Schema
[命名空间]:http://www.springframework.org/schema/jee
[Schema文件]:http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
spring-jdbc-3.0.xsd [说明]:为配置Spring内嵌数据库提供的Schema,是Spring3.0新增的
[命名空间]:http://www.springframework.org/schema/jdbc
[Schema文件]:http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
spring-jms-3.0.xsd [说明]:JMS配置的Schema
[命名空间]:http://www.springframework.org/schema/jms
[Schema文件]:http://www.springframework.org/schema/jms/spring-jms-3.0.xsd
spring-lang-3.0.xsd [说明]:增加了对JRuby和Groovy等动态语言的支持,该Schema是为集成动态语言而定义的
[命名空间]:http://www.springframework.org/schema/lang
[Schema文件]:http://www.springframework.org/schema/lang/spring-lang-3.0.xsd
spring-oxm-3.0.xsd [说明]:配置对象XML映射的Schema,是Spring3.0新增的
[命名空间]:http://www.springframework.org/schema/oxm
[Schema文件]:http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd
spring-task-3.0.xsd [说明]:任务调度的Schema
[命名空间]:http://www.springframework.org/schema/task
[Schema文件]:http://www.springframework.org/schema/task/spring-task-3.0.xsd
spring-tool-3.0.xsd [说明]:为集成Spring一些有用工具定义的Schema
[命名空间]:http://www.springframework.org/schema/tool
[Schema文件]:http://www.springframework.org/schema/tool/spring-tool-3.0.xsd
spring-context-3.0.xsd [说明]:扫描类包以应用注解定义Bean的Schema
[命名空间]:http://www.springframework.org/schema/context
[Schema文件]:http://www.springframework.org/schema/context/spring-context-3.0.xsd

3、Bean的命名

  Bean的配置时,需要为其指定一个id属性作为Bean的名称。id在IoC容器中必须是唯一的,必须以字母开始,后面可以是字母、数字、连字符、下划线、句号、冒号等完整结束的符号,逗号和空号这些非完整结束符都是非法的。

  Bean的命名,可以使用<bean>的name属性进行命名,name属性没有字符上的限制,几乎可以使用任何字符,如?ab、123等,如下所示:

  <bean name="#car1" class="com.baobaotao.simple.Car"/>

  id和name都可以指定多个名字,名字之间可用逗号、分号或者空格进行分隔:

  <bean name="#car1,123,$car"  class="com.baobaotao.simple.Car"/>

  这里,为Bean定义了三个名称,用户可以使用getBean("#car1")、getBean("123")、getBean("$car")来获取IoC容器中的Car Bean。

  Spring配置文件中不允许出现两个相同的id的<bean>,但却可以出现两个相同name的<bean>,如果有多个name相同的<bean>,通过getBean获取时,将返回最后声明的那个Bean,因为后面的Bean覆盖了前面同名的Bean。

  如果id和name都没指定,Spring自动将全限定类名作为Bean的名称,如getBean("com.baobaotao.simple.Car")获取Car Bean。

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

  1. Spring 配置概述

    理解了IoC的概念,那Spring框架是如何具体操作的呢?Spring IoC容器(ApplicaitonContext)负责创建Bean,并通过容器将功能类Bean注入到其他需要的Bean中.Spr ...

  2. Spring JDBC概述

    1.jdbc 概述 Spring JDBC是Spring框架的持久层子框架.用于对数据库的操作(增删改查). 而JdbcTemplate它是spring jdbc子框架中提供的一个操作类,用于对原始J ...

  3. Spring Integration概述

    1.   Spring Integration概述 1.1     背景 Spring框架的一个重要主题是控制反转.从广义上来说,Spring处理其上下文中管理的组件的职责.只要组件减轻了职责,它们同 ...

  4. Spring Cloud 概述

    1. Spring Cloud 引言 首先我们打开spring 的官网:https://spring.io/ 我们会看到这样一张图片 这个图片告诉我们,开发我们的应用程序就像盖楼一样, 首先我们需要搭 ...

  5. (转)Spring的概述

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

  6. 微服务与Spring Cloud概述

    微服务与Spring Cloud随着互联网的快速发展, 云计算近十年也得到蓬勃发展, 企业的IT环境和IT架构也逐渐在发生变革,从过去的单体应用架构发展为至今广泛流行的微服务架构. 微服务是一种架构风 ...

  7. Spring IOC 概述

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

  8. 1.Spring 框架概述

    目录 Spring 框架概述 1 我们所说的 "Spring "是什么意思 2. Spring和Spring框架的历史 3. 设计理念 4.反馈和贡献 5.开始使用 Spring ...

  9. Spring配置c3p0数据源时出错报:java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector

    今天在使用Spring配置c3p0数据源时,使用的数据库是mysql,服务器是tomcat,运行时报了一个 java.lang.NoClassDefFoundError: com/mchange/v2 ...

随机推荐

  1. 一,XAML基础

    RuntimeNameProperty特性:为什么<Grid x:Name="grid1"></Grid>等价于<Grid Name="gr ...

  2. Mysql数据库中的计数器表实时更新

    如果某个应用中存在计数器,例如网站的总访问量.用户的粉丝数.文件下载数等等.如果相关应用在Mysql数据库的表中保存计数器,在更新计数器的时候可能会碰到并发问题.例如在web应用中,记录网站的点击次数 ...

  3. centos Supervisor

    Supervisor是一个进程监控程序. 满足的需求是:我现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...

  4. .NET中class和struct的区别

    1.引言 提起class和struct,我们首先的感觉是语法几乎相同,待遇却天壤之别.历史将接力棒由面向过程编程传到面向对象编程,class和struct也背负着各自的命运前行.在我认为,struct ...

  5. 敏捷开发之道(四)Scrum概述

    上次的博文敏捷开发之道(二)极限编程XP和敏捷开发之道(三)极限编程XP续中,我们介绍了一下敏捷开发中的XP开发方法,今天咱们来了解另一个比较流行的敏捷开发方法--Scrum. 1.Scrum简介 S ...

  6. SVN学习

    一.SVN在线安装(Eclipse) 步骤1: 步骤2 其中http://subclipse.tigris.org/update_1.10.x是最新版本的SVN插件的下载站点[subclipse是Ec ...

  7. 写一个EF的CodeFirst的Demo

    写一个EF的CodeFirst的Demo 今天打算写一个关于EF的CodeFirs的一个小Demo.先略说一个EF的三种与数据库,怎么说,叫映射么,好吧,那就这么叫吧,就是一个是ModelFirst就 ...

  8. SQL Server数据库事务日志序列号(LSN)介绍

    原文:http://blog.csdn.net/tjvictor/article/details/5251463     日志序列编号(LSN)是事务日志里面每条记录的编号. 当你执行一次备份时,一些 ...

  9. 《C++Primer》复习——with C++11 [1]

    1.头文件中不应包含using声明,因为头文件的内容会拷贝到所有引用到他的文件中去,如果头文件里有谋个using声明,那么每个使用了该头文件的文件就会有这个声明,由于不经意间包含了一些名字,反而可能产 ...

  10. C# book

    <编写高质量代码:改善C#程序的157个建议>源码下载 http://www.cnblogs.com/luminji/archive/2011/09/20/2182265.html < ...