我正在尝试定义一个切入点,它将捕获每个用({)@CatchThis
注释的方法。这是我自己的注释。
此外,我想访问该方法的第一个参数,该参数将是Long
类型。可能还有其他争论,但我不关心它们。
修改
这就是我现在所拥有的。我不知道的是如何传递用@CatchThis
注释的方法的第一个参数。
@Aspect
public class MyAspect {
@Pointcut(value = "execution(public * *(..))")
public void anyPublicMethod() {
}
@Around("anyPublicMethod() && @annotation(catchThis)")
public Object logAction(ProceedingJoinPoint pjp, CatchThis catchThis) throws Throwable {
return pjp.proceed();
}
}
答案 0 :(得分:22)
这样的事情应该做:
@Aspect
public class MyAspect{
@Pointcut(value="execution(public * *(..))")
public void anyPublicMethod() {
}
@Around("anyPublicMethod() && @annotation(catchThis) && args(.., Long ,..)")
public Object logAction(
ProceedingJoinPoint pjp, CatchThis catchThis, Long long)
throws Throwable {
return pjp.proceed();
}
}