Java AOP 设置执行前切面点是注解的写法

示例

@Aspect
@Component
public class LogAspect {
  @Before("@annotation(com.example.aop.Action)")
  public void before(JoinPoint joinPoint) {
    MethodSignature signature = (MethodSignature) joinPoint.getSignature();
    Method method = signature.getMethod();
    Action action = method.getAnnotation(Action.class);
    System.out.println("注解式拦截 " + action.name());
  }
}

解释说明:

@Aspect 注解表示这是一个切面类
@Component 注解表示这是一个 Spring 组件,可以被自动扫描到
@Before 注解表示这是一个前置通知,在方法执行前执行
@annotation(com.example.aop.Action) 表示匹配带有 Action 注解的方法
JoinPoint 表示连接点,可以获取方法签名和参数等信息
MethodSignature 表示方法签名,可以获取方法的返回值类型和参数列表等信息
Method 表示方法,可以获取方法的注解等信息
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容