同时使用 @Pointcut
和 @Around
与单独使用 @Around
的主要区别在于代码的复用性和可读性。下面详细解释这两种方式的区别:
1. 单独使用 @Around
当你直接在 @Around
注解中定义切点表达式时,切点表达式会内联在每个 @Around
方法中。这种方式简单直接,但可能会导致代码重复和维护困难。
示例
标签:myLock,Around,Object,annotation,Pointcut,切面,execution,public From: https://blog.csdn.net/m0_56088675/article/details/143771868@Aspect @Component public class MyAspect { @Around("@annotation(myLock)") public Object aroundAdviceWithMyLock(ProceedingJoinPoint joinPoint) throws Throwable { // 前置逻辑 System.out.println("Before method execution with myLock annotation"); // 执行目标方法 Object result = joinPoint.proceed(); // 后置逻辑 System.out.println("After method execution with myLock annotation"); return result; } @Around("execution(* com.example.service.*.*(..))") public Object aroundAdviceForServiceMethods(ProceedingJo