转载自   Spring Bean 定义

Bean 定义

被称作 bean 的对象是构成应用程序的支柱也是由 Spring IoC 容器管理的。bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。这些 bean 是由用容器提供的配置元数据创建的,例如,已经在先前章节看到的,在 XML 的表单中的 定义。

bean 定义包含称为配置元数据的信息,下述容器也需要知道配置元数据:

  • 如何创建一个 bean

  • bean 的生命周期的详细信息

  • bean 的依赖关系

上述所有的配置元数据转换成一组构成每个 bean 定义的下列属性。

属性 描述
class 这个属性是强制性的,并且指定用来创建 bean 的 bean 类。
name 这个属性指定唯一的 bean 标识符。在基于 XML 的配置元数据中,你可以使用 ID 和/或 name 属性来指定 bean 标识符。
scope 这个属性指定由特定的 bean 定义创建的对象的作用域,它将会在 bean 作用域的章节中进行讨论。
constructor-arg 它是用来注入依赖关系的,并会在接下来的章节中进行讨论。
properties 它是用来注入依赖关系的,并会在接下来的章节中进行讨论。
autowiring mode 它是用来注入依赖关系的,并会在接下来的章节中进行讨论。
lazy-initialization mode 延迟初始化的 bean 告诉 IoC 容器在它第一次被请求时,而不是在启动时去创建一个 bean 实例。
initialization 方法 在 bean 的所有必需的属性被容器设置之后,调用回调方法。它将会在 bean 的生命周期章节中进行讨论。
destruction 方法 当包含该 bean 的容器被销毁时,使用回调方法。它将会在 bean 的生命周期章节中进行讨论。

Spring 配置元数据

Spring IoC 容器完全由实际编写的配置元数据的格式解耦。有下面三个重要的方法把配置元数据提供给 Spring 容器:

  • 基于 XML 的配置文件。

  • 基于注解的配置

  • 基于 Java 的配置

你已经看到了如何把基于 XML 的配置元数据提供给容器,但是让我们看看另一个基于 XML 配置文件的例子,这个配置文件中有不同的 bean 定义,包括延迟初始化,初始化方法和销毁方法的:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><!-- A simple bean definition --><bean id="..." class="..."><!-- collaborators and configuration for this bean go here --></bean><!-- A bean definition with lazy init set on --><bean id="..." class="..." lazy-init="true"><!-- collaborators and configuration for this bean go here --></bean><!-- A bean definition with initialization method --><bean id="..." class="..." init-method="..."><!-- collaborators and configuration for this bean go here --></bean><!-- A bean definition with destruction method --><bean id="..." class="..." destroy-method="..."><!-- collaborators and configuration for this bean go here --></bean><!-- more bean definitions go here --></beans>

你可以查看 Spring Hello World 实例 来理解如何定义,配置和创建 Spring Beans。

关于基于注解的配置将在一个单独的章节中进行讨论。刻意把它保留在一个单独的章节,是因为我想让你在开始使用注解和 Spring 依赖注入编程之前,能掌握一些其他重要的 Spring 概念。

Spring Bean 定义相关推荐

  1. Spring Bean 定义继承

    转载自  Spring Bean 定义继承 Bean 定义继承 bean 定义可以包含很多的配置信息,包括构造函数的参数,属性值,容器的具体信息例如初始化方法,静态工厂方法名,等等. 子 bean 的 ...

  2. 【Spring】Spring Bean 定义继承

    Spring Bean 定义继承 bean 定义可以包含很多的配置信息,包括构造函数的参数,属性值,容器的具体信息例如初始化方法,静态工厂方法名,等等. 子 bean 的定义继承父定义的配置数据.子定 ...

  3. Spring Bean的继承

    bean 定义可以包含很多的配置信息,包括构造函数的参数,属性值,容器的具体信息例如初始化方法,静态工厂方法名,等等. 子 bean 的定义继承父定义的配置数据.子定义可以根据需要重写一些值,或者添加 ...

  4. Spring-Boot 2.1.x和主要的bean定义

    我最近将应用程序从Spring Boot 1.5.X迁移到Spring Boot 2.X ,发现覆盖Spring Bean定义存在问题. 其中一种配置是在Kotlin中遵循的: @Configurat ...

  5. Spring Bean详解

    Spring bean是Spring框架在运行时管理的对象.Spring bean是任何Spring应用程序的基本构建块.你编写的大多数应用程序逻辑代码都将放在Spring bean中. Spring ...

  6. 我该如何学习spring源码以及解析bean定义的注册

    如何学习spring源码 前言 本文属于spring源码解析的系列文章之一,文章主要是介绍如何学习spring的源码,希望能够最大限度的帮助到有需要的人.文章总体难度不大,但比较繁重,学习时一定要耐住 ...

  7. spring的bean定义真的和顺序无关?

    http://narcissusoyf.iteye.com/blog/705511 在使用Ibatis的时候,如果某个sql的定义出现在引用sql的定义之后的话,笨笨的ibatis是会报错的..这让用 ...

  8. bean定义的继承 - Spring Framework reference 2.0.5 参考手册中文版

    http://doc.javanb.com/spring-framework-reference-zh-2-0-5/ch03s06.html 3.6. bean定义的继承 在bean定义中包含了大量的 ...

  9. 零配置 之 Spring注解实现Bean定义

    转载自  零配置 之 12.3 注解实现Bean定义 --跟我学spring3 12.3  注解实现Bean定义 12.3.1  概述 前边介绍的Bean定义全是基于XML方式定义配置元数据,且在[1 ...

最新文章

  1. 十三、java_GUI
  2. 【MM模块】Contract 采购合同简介
  3. 运算符重载(c++细节篇二)
  4. hdu5455(2015沈阳网络赛F题)
  5. c#中设计器中窗体释放  protected override void Dispose(bool disposing)改写解决部分窗体线程释放不彻底问题
  6. 【渝粤教育】国家开放大学2019年春季 1018国际公法 参考试题
  7. Spring的@Autowired和@Resource
  8. 38 WM配置-作业-定义库存转储和补充控制
  9. Hadoop namenode无法启动问题解决
  10. xshell 无法定位输入点_机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划...
  11. Java web server 之 Jetty
  12. 参考文献的序号怎么对齐_word序号对齐方式 word中如何让编号自动对齐
  13. 【DeepLearning】【环境配置】Ubuntu 下手动调节 Nvidia 显卡风扇转速
  14. 《Automation in Construction》期刊介绍(SCI 2区)
  15. HTML网上书店静态HTML网页作业作品 大学生三联书店网页设计制作成品 简单DIV CSS布局网站...
  16. 美国依靠美元霸权, 是如何收割世界财富的?
  17. JAVA 环境配置JDK
  18. E - 切绳子(二分)
  19. 美团架构师精心整理Netty实战,墙裂推荐Netty实战实践学习文档
  20. 四大名著红楼梦第三回 贾雨村夤缘复旧职 林黛玉抛父进京都

热门文章

  1. C++实现拓扑排序(vector模拟邻接表存储,栈实现)
  2. 素数-试除法和埃式筛选法模板
  3. 天梯赛模拟 链表去重 (25 分)
  4. java 先进先出的map_「 深入浅出 」java集合Collection和Map
  5. python做接口自动化如何输出测试报告-python生成接口自动化测试报告模版
  6. 牛客题霸 [反转字符串] C++题解/答案
  7. C++顺序创建txt文件
  8. POJ1236 Network of Schools
  9. 货车运输(洛谷P1967)(倍增)
  10. 不止代码:乘法游戏 题解(区间dp)