Spring - Bean 定义


构成应用程序主干并由 Spring IoC 容器管理的对象称为beans。bean 是一个由 Spring IoC 容器实例化、组装和管理的对象。这些 bean 是使用您提供给容器的配置元数据创建的。例如,采用 XML <bean/> 定义的形式,您已经在前面的章节中看到过。

Bean 定义包含称为配置元数据的信息,容器需要这些信息来了解以下内容 -

  • 如何创建一个bean
  • Bean的生命周期详细信息
  • Bean的依赖关系

所有上述配置元数据都会转换为构成每个 bean 定义的一组以下属性。

先生。 属性及说明
1

班级

该属性是强制性的,指定用于创建 bean 的 bean 类。

2

姓名

该属性唯一指定 bean 标识符。在基于 XML 的配置元数据中,您可以使用 id 和/或 name 属性来指定 bean 标识符。

3

范围

该属性指定从特定 bean 定义创建的对象的范围,它将在 bean 范围章节中讨论。

4

构造函数参数

这用于注入依赖项,并将在后续章节中讨论。

5

特性

这用于注入依赖项,并将在后续章节中讨论。

6

自动装配模式

这用于注入依赖项,并将在后续章节中讨论。

7

惰性初始化模式

延迟初始化的 bean 告诉 IoC 容器在第一次请求时而不是在启动时创建一个 bean 实例。

8

初始化方法

在容器设置 bean 的所有必要属性后立即调用的回调。它将在 bean 生命周期章节中讨论。

9

销毁方法

当包含 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 概念。