一尘不染

Spring AOP-每个带有注释的方法的切入点

java

我正在尝试定义一个切入点,该切入点将捕获用(ie)注释的每个方法@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();
    }
}

阅读 177

收藏
2020-12-03

共1个答案

一尘不染

这样的事情应该做:

@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();
    }
}
2020-12-03