跳到主要内容
版本:7.0.3

使用Spring的面向切面编程

Hunyuan 7b 中英对照 Aspect Oriented Programming with Spring

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

Spring 的关键组成部分之一是 AOP 框架。虽然 Spring IoC 容器并不依赖于 AOP(这意味着如果你不想使用 AOP,也可以不使用它),但 AOP 与 Spring IoC 相辅相成,提供了非常强大的中间件解决方案。

使用 AspectJ 切点实现 Spring AOP

Spring 提供了简单而强大的方式来编写自定义切面,既可以采用基于模式的方法,也可以使用@AspectJ 注解风格。这两种方式都提供完全类型化的切面规则,并利用 AspectJ 切点语言,同时仍然依赖 Spring AOP 来完成切面的编织。

本章将讨论基于模式和 @AspectJ 的 AOP 支持。关于较低级别的 AOP 支持内容,请参阅下一章

在Spring框架中,AOP被用来:

  • 提供声明式企业服务。其中最重要的服务是声明式事务管理

  • 允许用户实现自定义方面(custom aspects),通过面向切面编程(AOP)来补充他们的面向对象编程(OOP)使用。

备注

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

部分摘要