核心技术
这部分参考文档涵盖了所有对 Spring 框架至关重要的技术。
最为重要的便是 Spring 框架的控制反转(Inversion of Control, IoC)容器。紧接着是对 Spring 框架 IoC 容器的详尽讲解,随后则是对 Spring 面向切面编程(Aspect-Oriented Programming, AOP)技术的全面覆盖。Spring 框架拥有自己的 AOP 框架,这一框架在概念上易于理解,并且成功地解决了 Java 企业编程中大约 80% 的 AOP 需求。
还提供了Spring与AspectJ的集成覆盖(目前这是在特性方面最丰富,并且肯定是Java企业领域中最成熟的AOP实现)。
1.1、Spring IoC 容器和 Beans 的简介
本章涵盖了Spring框架对控制反转(Inversion of Control,简称IoC)原则的实现。IoC也被称为依赖注入(Dependency Injection,简称DI)。这是一个过程,对象仅通过构造函数参数、工厂方法的参数或在对象实例构建后或从工厂方法返回后设置的属性来定义它们的依赖关系(即,它们所协作的其他对象)。然后,容器在创建bean时注入这些依赖项。这一过程从根本上来说是与bean自身通过直接构造类或使用诸如服务定位器模式等机制来控制其依赖项的实例化或位置查找相反的(因此称为控制反转)。
org.springframework.beans 和 org.springframework.context 包是Spring框架的IoC容器的基础。BeanFactory接口提供了一种高级配置机制,能够管理任何类型的对象。
ApplicationContext是BeanFactory的子接口,它增加了:
- 更容易地与Spring的AOP特性进行集成
- 消息资源处理(用于国际化)
- 事件发布
- 应用层特定的上下文,例如在Web应用程序中使用的WebApplicationContext
简而言之,BeanFactory提供了配置框架和基本功能,而ApplicationContext则增加了更多针对企业的功能。ApplicationContext是BeanFactory的完整超集,并且在本章描述Spring的IoC容器时将专门使用ApplicationContext。有关使用BeanFactory代替ApplicationContext的更多信息,请参阅《BeanFactory》一节。
在Spring中,构成您应用程序骨干并由Spring IoC容器管理的对象被称为bean。一个bean是由Spring IoC容器实例化、组装和管理的对象。除此之外,bean只是您应用程序中的众多对象之一。bean及其之间的依赖关系会在容器使用的配置元数据中体现出来。