「Spring認證」Spring Bean 定義教學

Adobe國際認證發表於2021-08-19

構成應用程式主幹並由 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 Container 提供配置後設資料的三種重要方法 -

  • 基於 XML 的配置檔案。
  • 基於註解的配置
  • 基於Java的配置

您已經看到了如何向容器提供基於 XML 的配置後設資料,但讓我們看看另一個基於 XML 的配置檔案示例,其中包含不同的 bean 定義,包括延遲初始化、初始化方法和銷燬方法 -

<?xml version = "1.0" encoding = "UTF-8"?><beans xmlns = "
   xmlns:xsi = "
   xsi:schemaLocation = "
   /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 概念。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69981720/viewspace-2787822/,如需轉載,請註明出處,否則將追究法律責任。

相關文章