> 文档中心 > 【Spring入门 】4.Bean的定义

【Spring入门 】4.Bean的定义


Bean

由Spring IoC容器管理的对象称为Bean,Bean根据Spring配置文件中的信息创建。

把Spring IoC容器看做一个工厂,Bean是工厂的产品.如果希望工厂生产和管理Bean,就要告诉容器需要哪些Bean,以哪种方式装配。

Spring配置文件支持两种格式:XML文件格式和Properties文件格式

  • properties配置文件主要以key-value键值对形式存在,只能赋值,不能进行其他操作,适用于简单的属性配置。

  • XML配置文件采用树形结构,结构清晰,相较于Properties文件更加灵活,但是XML配置比较繁琐,适用于大型的复杂的项目

通常情况下,Spring的配置文件都是使用XML格式的。XML配置文件的根元素是。每一个元素都应一乐一个Bean,并描述了改Bean是如何被装配到Spring容器中的。

元素中可以包含多个属性或子元素:

属性名称 描述
id Bean 的唯一标识符,Spring IoC 容器对 Bean 的配置和管理都通过该属性完成。id 的值必须以字母开始,可以使用字母、数字、 下划线等符号。
name 该属性表示 Bean 的名称,我们可以通过 name 属性为同一个 Bean 同时指定多个名称,每个名称之间用逗号或分号隔开。Spring 容器可以通过 name 属性配置和管理容器中的 Bean。
class 该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,即类的全限定名。
scope 表示 Bean 的作用域,属性值可以为 singleton(单例)、prototype(原型)、request、session 和 global Session。默认值是 singleton。
constructor-arg 元素的子元素,我们可以通过该元素,将构造参数传入,以实现 Bean 的实例化。该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型。
property 元素的子元素,用于调用 Bean 实例中的 setter 方法对属性进行赋值,从而完成属性的注入。该元素的 name 属性用于指定 Bean 实例中相应的属性名。
ref 和 等元素的子元索,用于指定对某个 Bean 实例的引用,即 元素中的 id 或 name 属性。
value 和 等元素的子元素,用于直接指定一个常量值。
list 用于封装 List 或数组类型的属性注入。
set 用于封装 Set 类型的属性注入。
map 用于封装 Map 类型的属性注入。
entry 元素的子元素,用于设置一个键值对。其 key 属性指定字符串类型的键值,ref 或 value 子元素指定其值。
init-method 容器加载 Bean 时调用该方法,类似于 Servlet 中的 init() 方法
destroy-method 容器删除 Bean 时调用该方法,类似于 Servlet 中的 destroy() 方法。该方法只在 scope=singleton 时有效
lazy-init 懒加载,值为 true,容器在首次请求时才会创建 Bean 实例;值为 false,容器在启动时创建 Bean 实例。该方法只在 scope=singleton 时有效