### 1.1. Spring Ioc容器和Beans概述
本章介紹Spring Framework實現控制反轉(IoC)原理。IoC也被稱為依賴注入(DI)。它是一個處理對象依賴的過程,和該對象共同工作的其他對象(即依賴),只有在該對象構建完成后或者從工廠方法返回后,通過構造函數參數、工廠方法的參數或屬性設置到對象實例中。容器在創建bean時會注入這些依賴。這個過程從根本上來說是相反的,因此名為控制反轉(IoC),bean本身通過使用類的直接構造或諸如Service Locator模式之類的機制來控制其依賴關系的實例化或位置。
*org.springframework.beans* 和 *org.springframework.context* 包是Spring Framework IoC容器的基礎。*BeanFactory* 接口提供了一種能夠管理任何類型對象的高級配置機制。*ApplicationContext* 是 *BeanFactory* 的一個子接口。它增加了與Spring的AOP功能、消息資源處理(用于國際化)、事件發布、以及在web應用中使用的應用層特定的上下文(如*WebApplicationContext*)更容易的集成。
簡而言之,*BeanFactory* 提供了配置框架和基本功能,而 *ApplicationContext* 添加了更多的企業層級的功能。*ApplicationContext* 是 *BeanFactory* 的一個完整超集,在本章中專門用于描述Spring的IoC容器。有關使用 *BeanFactory* 而不是 *ApplicationContext* 的更多信息,請參閱 *BeanFactory*。
在Spring中,構成應用程序主干和由Spring IoC容器管理的對象稱為beans。一個bean是一個由Spring IoC容器實例化,組裝并管理的對象。換而言之,bean只是你的應用程序中眾多對象中的一個。Beans和它們之間的依賴關系反映在容器使用的配置元數據中。