Spring Bean 定义

构成应用程序主干并由 Spring IoC 容器管理的对象称为 bean。 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 方法 在 bean 的所有必需的属性被容器设置之后,调用回调方法。它将会在 bean 的生命周期章节中进行讨论。
9 destruction 方法 当包含该 bean 的容器被销毁时,使用回调方法。它将会在 bean 的生命周期章节中进行讨论。

Spring 配置元数据

Spring IoC 容器与实际编写此配置元数据的格式完全解耦。 以下是向 Spring Container 提供配置元数据的三种重要方法 -

  • 基于 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 第一个示例 以了解如何定义、配置和创建 Spring Bean。

我们将在单独的章节中讨论基于注释的配置。 在开始使用带有注解的 Spring 依赖注入进行编程之前,我们希望掌握其他一些重要的 Spring 概念,因此有意在单独的章节中对其进行讨论。

查看笔记

扫码一下
查看教程更方便