我正在尝试写一条建议,以使用自定义注释来拦截对类的构造函数的调用:
@MyCustomAnnotation
public class SomeClass {
public SomeClass(Foo a, Bar b){
...
}
public SomeClass(Foo a){
this(a, null);
}
}
我通常看到一个如何拦截构造函数调用的示例:
@Before("execution(*.new(..))")
如何将其更新为仅对使用我的@MyCustomAnnotation
注释进行注释的类执行
答案 0 :(得分:0)
我将其用于方法调用:
within(@MyCustomAnnotation *)
因此,最终的方面代码将是:
@Before("execution(*.new(..)) && within(@MyCustomAnnotation *)")
或者,尝试以下操作:
@Pointcut("execution(@MyCustomAnnotation *.new(..))")
我在这里指的是文档:https://blog.espenberntsen.net/2010/03/20/aspectj-cheat-sheet/
而且,它应该在理论上可行,但是我没有任何运气。