Spring 中的面向切面编程
面向切面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP)。OOP 中的关键模块化单元是类,而 AOP 中的模块化单元是切面。切面实现了跨多个类型和对象的关注点(例如事务管理)的模块化。(此类关注点在 AOP 文献中通常被称为“横切”关注点。)
Spring 的关键组件之一是 AOP 框架。虽然 Spring IoC 容器不依赖于 AOP(这意味着如果你不想,则不需要使用 AOP),但 AOP 补充了 Spring IoC,以提供一个功能强大的中间件解决方案。
AOP 在 Spring 框架中用于:
-
提供声明式企业服务。最重要的此类服务是声明式事务管理。
-
让用户实现自定义切面,通过 AOP 补充他们对 OOP 的使用。
| 如果你只对通用声明式服务或其他预打包的声明式中间件服务(如连接池)感兴趣,则无需直接使用 Spring AOP,可以跳过本章大部分内容。 |