我正在使用一些AspectJ代码,我想捕获所有没有私有切入点的执行。
@Pointcut("execution(public * *(..))")//Public
public void publicMethod(){};
@Pointcut("execution(protected * *(..))"//Protected
public void protectedMethod(){}
@Pointcut("@annotation(mypackage.name.annotationName")
public void annotationPointcut(){}
@Around("annotationPointcut() && (protectedMethod() || publicMethod())")
public Object test(){ System.out.println("Should not print private"); }
我读到了关于使用的内容! (不是)但无法让它发挥作用。 像
这样的东西@Pointcut("!execution(private * *(..))"
但没有让它发挥作用。
我在aspectJ中找不到默认类修饰符的修饰符名称,我错过了它还是需要尝试使用它来解决它!没有以某种方式签约?
关注正在学习aspectJ的新开发
答案 0 :(得分:2)
尝试此操作以捕获所有非私有方法。
@Pointcut("execution(!private * *(..))")