
- Spring 核心基礎
- Spring - 首頁
- Spring - 概述
- Spring - 架構
- Spring - 環境設定
- Spring - Hello World 示例
- Spring - IoC 容器
- Spring - Bean 定義
- Spring - Bean 作用域
- Spring - Bean 生命週期
- Spring - Bean 後處理器
- Spring - Bean 定義繼承
- Spring - 依賴注入
- Spring - 注入內部 Bean
- Spring - 注入集合
- Spring - Bean 自動裝配
- 基於註解的配置
- Spring - 基於 Java 的配置
- Spring - Spring 中的事件處理
- Spring - Spring 中的自定義事件
- Spring - 使用 Spring 框架的 AOP
- Spring - JDBC 框架
- Spring - 事務管理
- Spring - Web MVC 框架
- Spring - 使用 Log4J 進行日誌記錄
- Spring 問題與解答
- Spring - 問題與解答
- Spring 有用資源
- Spring - 快速指南
- Spring - 有用資源
- Spring - 討論
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 概念。