Spring - Bean 定义
构成应用程序主干并由 Spring IoC 容器管理的对象称为 beans。 bean 是由 Spring IoC 容器实例化、组装和管理的对象。 这些 bean 使用您提供给容器的配置元数据创建。 例如,以 XML <bean/> 的形式。 前面章节中已经看到的定义。
Bean定义中包含了称为配置元数据的信息,容器需要知道以下信息 −
- 如何创建一个 bean
- Bean 的生命周期详情
- Bean 的依赖关系
上述所有配置元数据都转换为一组构成每个 bean 定义的以下属性。
| 序号 | 属性 & 描述 |
|---|---|
| 1 |
class 该属性是必需的,它指定了用于创建 bean 的 bean 类。 |
| 2 |
name 此属性唯一地指定 bean 标识符。 在基于 XML 的配置元数据中,您使用 id 和/或 name 属性来指定 bean 标识符。 |
| 3 |
scope 此属性指定从特定 bean 定义创建的对象的范围,将在 bean 范围一章中讨论。 |
| 4 |
constructor-arg 这用于注入依赖关系,将在后续章节中讨论。 |
| 5 |
properties 这用于注入依赖关系,将在后续章节中讨论。 |
| 6 |
autowiring mode 这用于注入依赖关系,将在后续章节中讨论。 |
| 7 |
lazy-initialization mode 延迟初始化的 bean 告诉 IoC 容器在第一次被请求时创建一个 bean 实例,而不是在启动时。 |
| 8 |
initialization method 在容器设置了 bean 上的所有必要属性之后调用的回调。 它将在 bean 生命周期章节中讨论。 |
| 9 |
destruction method 当包含 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/beans
http://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 Bean。
我们将在单独的章节中讨论基于注解的配置。 在您开始使用带有注解的 Spring 依赖注入进行编程之前,我们希望您掌握一些其他重要的 Spring 概念,因此有意在单独的章节中讨论它。

