扫码一下
查看教程更方便
构成应用程序主干并由 Spring IoC 容器管理的对象称为 bean。 bean 是由 Spring IoC 容器实例化、组装和管理的对象。 这些 bean 是使用提供给容器的配置元数据创建的。 例如,在前面的章节中已经看到了 XML <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 方法 | 在 bean 的所有必需的属性被容器设置之后,调用回调方法。它将会在 bean 的生命周期章节中进行讨论。 |
9 | destruction 方法 | 当包含该 bean 的容器被销毁时,使用回调方法。它将会在 bean 的生命周期章节中进行讨论。 |
Spring IoC 容器与实际编写此配置元数据的格式完全解耦。 以下是向 Spring Container 提供配置元数据的三种重要方法 -
我们已经了解了如何将基于 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 第一个示例 以了解如何定义、配置和创建 Spring Bean。
我们将在单独的章节中讨论基于注释的配置。 在开始使用带有注解的 Spring 依赖注入进行编程之前,我们希望掌握其他一些重要的 Spring 概念,因此有意在单独的章节中对其进行讨论。