对象形成应用的骨干,那些由Spring IoC容器管理的对象叫做beans。一个bean是一个示例化、装配的另外被Spring IoC容器管理的对象。beans由你提供给容器的配置元数据创建,如XML形式的<bean/>定义,在前面的章节你已经看到。
bean定义的信息叫做配置元数据(configuration metadata),它需要向容器提供如下内容:
*如何创建bean
*bean的生命周期详情
*bean的依赖
1、 基于XML的配置文件
2、 基于注解的配置
3、 基于Java的配置
你已经看到过基于XML的配置元数据是如何提供给容器的,但让我们看看另一种用不同的bean定义基于XML的配置文件包括lazy initialization、initialization method和destruction method:
bean定义的信息叫做配置元数据(configuration metadata),它需要向容器提供如下内容:
*如何创建bean
*bean的生命周期详情
*bean的依赖
以上的配置元数据转换成如下一组属性,组成每个bean的定义
属性 | 描述 |
class | 这个属性是强制性的并指定bean的类型,以用来创建bean。 |
name | 这个属性制定bean的唯一标识符。在XML配置元数据中,你用id或者name属性指明bean的标识。 |
scope | 这个属性说明一个特定的bean定义所创建对象的范围,这将在bean scopes章节讨论。 |
constructor-arg | 这个用于注入依赖,将在接下来的章节讨论。 |
properties | 这个用于注入依赖,将在接下来的章节讨论。 |
autowiring mode | 这个用于注入依赖,将在接下来的章节讨论。 |
lazy-initialization mode | 这个 lazy-initialized bean告诉IoC容器当这个bean第一次需要时才实例化这个bean而不是容器启时。 |
initialization method | 当容器设置完bean所有必要的属性之后被回调的方法。将在讨论bean生命周期章节中讨论。 |
destruction method | 当容器包含的bean被销毁时被回调的方法。将在讨论bean生命周期章节中讨论 |
Spring配置元数据
Spring IoC容器完全解耦于实际配置元数据的方式。如下三种重要的方法提供配置元数据给Spring容器:1、 基于XML的配置文件
2、 基于注解的配置
3、 基于Java的配置
你已经看到过基于XML的配置元数据是如何提供给容器的,但让我们看看另一种用不同的bean定义基于XML的配置文件包括lazy initialization、initialization method和destruction method:
<?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 HelloWorld示例来理解如何定义、配置和创建beans。
我将在独立的章节中讨论基于注解的配置。我故意放在独立的章节,因为我想让你抓住其他重要的Spring概念在你更广泛的用注解的依赖注入方法编程之前。