我想为类设置注释,当我调用对象的任何方法时,该类要在execute方法之前执行拦截器。
@MyAnn
public class SomeClass {
public void someMethod1() {}
public void someMethod2() {}
}
@Aspect
public class SomeInterceptor {
@Pointcut("execution(@my.package.aop.MyAnn* *.*(..))")
public void checkMethod() {}
@Around("checkMethod()")
public Object method(ProceedingJoinPoint joinPoint) throws Throwable {
}
}
在@Pointcut(...)中应设置什么表达式,以使我的类的所有方法在执行之前都已处理拦截器?
答案 0 :(得分:0)
找到了解决方案
@Pointcut("execution(public * *(..))")
private void anyPublicOperation() {}
@Pointcut("within(@my.package.aop.MyAnn *)")
private void withinMyAnn() {}
@Pointcut("anyPublicOperation() && withinMyAnn()")
public void checkMethod() {}
如果有更成功的解决方案,我很乐意在评论中看到