Spring IoC 容器與 Bean 簡介
本章介紹 Spring Framework 對控制反轉 (Inversion of Control, IoC) 原則的實作。依賴注入 (Dependency injection, DI) 是 IoC 的一種特殊形式,物件僅透過建構子引數、工廠方法的引數或在物件實例建構或從工廠方法傳回後設定的屬性來定義其依賴項(即它們協同工作的其他物件)。然後 IoC 容器在建立 Bean 時注入這些依賴項。此過程從根本上是 Bean 本身透過直接建構類別或使用諸如服務定位器模式之類的機制來控制其依賴項的實例化或位置的逆轉(因此得名,控制反轉)。
org.springframework.beans
和 org.springframework.context
套件是 Spring Framework IoC 容器的基礎。BeanFactory
介面提供了一種進階配置機制,能夠管理任何類型的物件。ApplicationContext
是 BeanFactory
的子介面。它新增了
-
更輕鬆地與 Spring 的 AOP 功能整合
-
訊息資源處理(用於國際化)
-
事件發布
-
應用程式層特定 Context,例如用於 Web 應用程式的
WebApplicationContext
。
簡而言之,BeanFactory
提供了配置框架和基本功能,而 ApplicationContext
新增了更多企業特定功能。ApplicationContext
是 BeanFactory
的完整超集,在本章中專門用於描述 Spring 的 IoC 容器。有關使用 BeanFactory
而不是 ApplicationContext
的更多資訊,請參閱涵蓋 BeanFactory
API 的章節。
在 Spring 中,構成應用程式骨幹並由 Spring IoC 容器管理的物件稱為 Bean。Bean 是由 Spring IoC 容器實例化、組裝和管理的物件。否則,Bean 只是應用程式中的眾多物件之一。Bean 及其之間的依賴關係反映在容器使用的配置元資料中。