跳到主要内容

面向切面编程与 Spring

ChatGPT-4o-mini 中英对照 Aspect Oriented Programming with Spring

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

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

Spring AOP 与 AspectJ 切入点

Spring 提供了简单而强大的方式来编写自定义切面,使用 基于模式的方法@AspectJ 注解风格。这两种风格都提供了完全类型化的通知,并使用 AspectJ 切入点语言,同时仍然使用 Spring AOP 进行织入。

本章讨论基于模式和 @AspectJ 的 AOP 支持。较低级别的 AOP 支持将在 下一章 中讨论。

AOP 在 Spring 框架中用于:

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

  • 让用户实现自定义切面,补充他们对面向对象编程(OOP)的使用与面向切面编程(AOP)。

备注

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

章节摘要