弹簧AOP - 每个方法的切点,带有注释

2022-09-02 01:33:52

我试图定义一个切入点,它将捕获每个用(即)注释的方法。这是我自己的注释。@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();
    }
}

答案 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();
    }
}

答案 2

推荐