控制反转也被称为依赖注入。它是对象之间定义依赖关系(即与它们一块儿工做的其它对象)的过程,这个过程只能经过构造函数的参数、工厂方法的参数或者已经被构造方法或者工厂方法返回的对象的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和它们之间的依赖关系反应在容器使用的配置元数据中。框架