Core Technologies
参考文档的这部分涵盖了 Spring 框架所有必不可少的技术。
其中最重要的是 Spring 框架的控制反转(IoC)容器。在对 Spring 框架的 IoC 容器进行彻底剖析之后,将全面介绍 Spring 的面向切面编程(AOP)技术。 Spring 框架具有自己的在概念上易于理解的 AOP 框架,并且成功解决了 Java 企业编程中 AOP 需求中的 80%的难题。
Spring 还提供了 与 AspectJ (就功能而言,AspectJ 目前是 Java 企业领域中最丰富和最成熟的 AOP 实现)的集成。
1. The IoC Container
本章介绍了 Spring 的控制反转(IoC)容器。
1.1. Spring IoC Container and Beans简介
本章介绍了控制反转(IoC)原则的 Spring 框架实现。IoC 也称为依赖注入(DI)。它是这样一个过程:对象仅通过构造函数参数、工厂方法的参数或在对象实例构造或从工厂方法返回后在对象实例上设置的属性来定义它们的依赖关系(即它们使用的其他对象)。然后,容器在创建 bean 时注入那些依赖。这个过程基本上是bean本身的逆过程(因此称为控制反转),通过使用类的直接构造或服务定位器模式等机制来控制其实例化或依赖项的定位。
org.springframework.beans
和org.springframework.context
软件包是 Spring Framework 的 IoC 容器的基础。 BeanFactory接口提供了一种高级配置机制,能够管理任何类型的对象。 ApplicationContext是BeanFactory
的子接口。它增加了:
与 Spring 的 AOP 功能轻松集成
消息资源处理(用于国际化)
Event publication
特定于应用程序层的上下文,例如用于 Web 应用程序的WebApplicationContext。
简而言之,BeanFactory
提供了配置骨架和基本的功能,而ApplicationContext
添加了更多企业特定的功能。 ApplicationContext
是BeanFactory
的完整超集,在本章中仅介绍Spring 的 IoC 容器ApplicationContext
。有关使用BeanFactory
而不是ApplicationContext,
的更多信息,请参见The BeanFactory。
在 Spring 中,构成应用程序主干并由 Spring IoC 容器 管理的对象称为 Bean 。 Bean 是由 Spring IoC 容器实例化,组装和管理的对象。否则,bean 仅仅是应用程序中许多对象之一。 Bean 及其之间的依赖关系反映在容器使用的配置元数据中。