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

自動裝配模式

這用於注入依賴項,將在後續章節中討論。

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 概念。

廣告