https://docs.spring.io/spring-framework/reference/core/beans/introduction.html
简单介绍了Spring框架对控制反转(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(面向切面编程)特性集成。
- 消息资源处理(用于国际化)。
- 事件发布。
- 应用层特定的上下文,例如
WebApplicationContext
,用于 web 应用中。
简而言之,BeanFactory
提供了配置框架和基本功能,而 ApplicationContext
添加了更多针对企业级的特性。ApplicationContext
是 BeanFactory
的完全超集。
在 Spring 中,构成应用程序骨干并由 Spring IoC 容器管理的对象被称为 bean。bean 是由 Spring IoC 容器实例化、组装和管理的对象。否则,bean 只是应用程序中的众多对象之一。beans 及其之间的依赖关系在容器使用的配置元数据中得以体现。