Spring Boot AOP17 Mar 2025 | 5 分钟阅读 应用程序通常使用多个层开发。一个典型的 Java 应用程序有以下几层:
每一层的职责都不同,但有一些适用于所有层的共同方面,如日志记录、安全性、验证、缓存等。这些共同方面称为横切关注点。 如果我们在每一层中单独实现这些关注点,代码将变得更难以维护。为了克服这个问题,面向切面编程 (AOP) 提供了一种实现横切关注点的解决方案。
它确保横切关注点在一个内聚的代码组件中定义。 AOPAOP (面向切面编程) 是一种通过允许分离横切关注点来提高模块化的编程模式。这些横切关注点与主要业务逻辑不同。我们可以在不修改代码本身的情况下向现有代码添加额外的行为。 Spring 的 AOP 框架帮助我们实现这些横切关注点。 使用 AOP,我们在一个地方定义通用功能。我们可以自由地定义如何以及在哪里应用此功能,而无需修改我们应用新功能的类。横切关注点现在可以模块化为特殊的类,称为切面。 切面有 两 个好处:
切面具有要实现的职责,称为通知。我们可以在一个或多个连接点将切面的功能实现到程序中。 AOP 的优点
横切关注点横切关注点是我们想要在应用程序的多个位置实现的一个关注点。它影响整个应用程序。 AOP 术语
代理 (Proxy): 在将通知应用于目标对象后创建的对象称为 代理。Spring AOP 实现 JDK 动态代理 以创建具有目标类和通知调用的代理类。这些称为 AOP 代理类。 AOP vs. OOPAOP 和 OOP 之间的区别如下:
Spring AOP vs. AspectJAOP 和 OOP 之间的区别如下:
AOP 通知的类型有五种类型的 AOP 通知如下:
前置通知 (Before Advice): 在连接点之前执行的通知称为前置通知。我们使用 @Before 注释将通知标记为前置通知。 后置通知 (After Advice): 在连接点之后执行的通知称为后置通知。我们使用 @After 注释将通知标记为后置通知。 环绕通知 (Around Advice): 在连接点之前和之后执行的通知称为环绕通知。 抛出后通知 (After Throwing Advice): 当连接点抛出异常时执行的通知。 返回后通知 (After Returning Advice): 当方法成功执行时执行的通知。 在应用程序中实现 AOP 之前,我们需要在 pom.xml 文件中添加 Spring AOP 依赖项。 Spring Boot Starter AOPSpring Boot Starter AOP 是一个提供 Spring AOP 和 AspectJ 的依赖项。其中 AOP 提供基本的 AOP 功能,而 AspectJ 提供完整的 AOP 框架。 在下一节中,我们将在应用程序中实现不同的通知。 |
我们请求您订阅我们的新闻通讯以获取最新更新。