控制反轉也被稱爲依賴注入。它是對象之間定義依賴關係(即與它們一塊兒工做的其它對象)的過程,這個過程只能經過構造函數的參數、工廠方法的參數或者已經被構造方法或者工廠方法返回的對象的setter方法設置其屬性來實現。當容器建立bean的時候注入這些依賴。這個過程從根本上來說是反向的,所以被稱爲控制反轉,bean直接經過使用類的構造或相似於 Service Locator 設計模式的機制,本身控制實例化或者定位它的依賴關係。web
org.springframework.beans 和 org.springframework.context 包是 Spring Framework 的 IoC 容器的基礎。BeanFactory 接口提供了一種更先進的配置機制來管理任意類型的對象。ApplicationContext 是 BeanFactory 的一個子接口。它簡單的集成 Spring AOP 功能,添加了信息資源處理(國際化中使用),事件發佈;還添加了應用層的特殊上下文,例如web應用中使用的WebApplicationContext。spring
簡而言之,BeanFactory提供了框架的配置和基本功能,ApplicationContext增長了更多面向企業級的功能。ApplicationContext是BeanFactory的超集。設計模式
在Spring中,構成應用程序主幹並交由Spring IoC容器管理的對象被稱爲bean。一個bean是由Spring IoC 容器實例化、組裝和管理的對象。此外,一個bean就是應用程序中許多的對象之一。Bean和它們之間的依賴關係反應在容器使用的配置元數據中。框架