Spring Bean Definition 怎么定义和使用?

文章导读
Previous Quiz Next 构成应用程序骨干并由 Spring IoC container 管理的对象称为 beans。Bean 是一个由 Spring IoC container 实例化、组装和管理的对象。这些 beans 是使用您提供给 container 的
📋 目录
  1. Bean 属性
  2. Spring 配置元数据
A A

Spring - Bean 定义



Previous
Quiz
Next

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

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

  • 如何创建 bean

  • Bean 的生命周期细节

  • Bean 的依赖关系

Bean 属性

上述所有配置元数据会转换为以下属性集,这些属性构成了每个 bean 定义。

序号 属性 & 描述
1

class

此属性是必填的,用于指定创建 bean 时使用的 bean class。

2

name

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

3

scope

此属性指定从特定 bean 定义创建的对象的作用域,将在 bean scopes 章节中讨论。

4

constructor-arg

用于注入依赖关系,将在后续章节中讨论。

5

properties

用于注入依赖关系,将在后续章节中讨论。

6

autowiring mode

用于注入依赖关系,将在后续章节中讨论。

7

lazy-initialization mode

延迟初始化的 bean 告诉 IoC container 在首次请求时创建 bean 实例,而不是在启动时创建。

8

initialization method

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

9

destruction method

当包含 bean 的 container 被销毁时使用的回调。将会在 bean 生命周期章节中讨论。

Spring 配置元数据

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

  • 基于 XML 的配置文件。

  • 基于注解的配置。

  • 基于 Java 的配置。

你已经见过如何向容器提供基于 XML 的配置元数据,但让我们再看一个包含不同 bean 定义的基于 XML 的配置文件示例,包括延迟初始化、初始化方法和销毁方法 −

<?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">

   <!-- 一个简单的 bean 定义 -->
   <bean id = "..." class = "...">
      <!-- 此 bean 的协作者和配置放在这里 -->
   </bean>

   <!-- 一个启用了延迟初始化的 bean 定义 -->
   <bean id = "..." class = "..." lazy-init = "true">
      <!-- 此 bean 的协作者和配置放在这里 -->
   </bean>

   <!-- 一个带有初始化方法的 bean 定义 -->
   <bean id = "..." class = "..." init-method = "...">
      <!-- 此 bean 的协作者和配置放在这里 -->
   </bean>

   <!-- 一个带有销毁方法的 bean 定义 -->
   <bean id = "..." class = "..." destroy-method = "...">
      <!-- 此 bean 的协作者和配置放在这里 -->
   </bean>

   <!-- 更多 bean 定义放在这里 -->
   
</beans>

你可以查看 Spring Hello World 示例来了解如何定义、配置和创建 Spring Bean。

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