Spring 简明教程

Spring - Bean Definition

构成应用程序主干且由 Spring IOC 容器管理的对象称为 beans 。Bean 是由 Spring IOC 容器实例化、组装和管理的对象。这些 Bean 是使用你提供给容器的配置元数据创建的。例如,在 XML <bean/> 定义中(你在前面章节中已经见过)。

Bean 定义包含 configuration metadata 名称的信息,其中需要容器知道以下内容:

  1. 如何创建 Bean

  2. Bean’s lifecycle details

  3. Bean’s dependencies

所有以上的配置元数据都转换为一组下面的属性,该组属性构成每个 Bean 定义。

Sr.No.

Properties & Description

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 Configuration Metadata

Spring IOC 容器完全解除了此配置元数据实际编写的格式上的限制。向 Spring 容器提供配置元数据的三种重要方法如下:

  1. XML based configuration file.

  2. Annotation-based configuration

  3. Java-based configuration

您已经了解了如何向容器提供基于 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 Example 来了解如何定义、配置和创建 Spring Bean。

我们将在单独的一章中讨论基于注解的配置。它是有意在单独的章节中讨论的,因为我们希望您掌握一些其他重要的 Spring 概念,然后再开始使用带注解的 Spring 依赖项注入进行编程。