对于最新稳定版本,请使用 Spring Framework 7.0.6spring-doc.cadn.net.cn

使用 Spring 进行面向切面编程

面向切面编程(AOP)通过提供另一种思考程序结构的方式,对面向对象编程(OOP)进行了补充。在 OOP 中,模块化的基本单元是类,而在 AOP 中,模块化的基本单元是切面(aspect)。切面能够将横跨多个类型和对象的关注点(例如事务管理)进行模块化。(在 AOP 文献中,这类关注点通常被称为“横切”关注点。)spring-doc.cadn.net.cn

Spring 的关键组件之一是 AOP 框架。虽然 Spring IoC 容器并不依赖于 AOP(这意味着如果你不想使用 AOP,就无需使用),但 AOP 与 Spring IoC 相辅相成,共同提供了一个功能强大的中间件解决方案。spring-doc.cadn.net.cn

使用 AspectJ 切点的 Spring AOP

Spring 提供了简单而强大的方式来编写自定义切面,既可以使用基于 schema 的方法,也可以使用@AspectJ 注解风格。 这两种风格都支持完全类型化的通知,并使用 AspectJ 切点语言,同时仍然利用 Spring AOP 进行织入。spring-doc.cadn.net.cn

本章讨论基于 schema 和 @AspectJ 的 AOP 支持。 底层的 AOP 支持将在下一章中讨论。spring-doc.cadn.net.cn

AOP 在 Spring 框架中用于:spring-doc.cadn.net.cn

如果你仅对通用的声明式服务或其他预封装的声明式中间件服务(例如池化)感兴趣,那么你无需直接使用 Spring AOP,可以跳过本章的大部分内容。