【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 | |
init-method | 容器加载 Bean 时调用该方法,类似于 Servlet 中的 init() 方法 |
destroy-method | 容器删除 Bean 时调用该方法,类似于 Servlet 中的 destroy() 方法。该方法只在 scope=singleton 时有效 |
lazy-init | 懒加载,值为 true,容器在首次请求时才会创建 Bean 实例;值为 false,容器在启动时创建 Bean 实例。该方法只在 scope=singleton 时有效 |