我想拦截所有使用特定注释对类进行注释的构造函数调用。
我有一个这样的方面:
@Aspect
public class ConstructorClassLevelAspect {
@Before(
"execution(*.new(..)) && @annotation(ConstructorClassLevel)")
public void doConstructorClassLevel(
JoinPoint point) throws Throwable {
System.out.println("constructed" + point);
}
}
和一个实例:
@ConstructorClassLevel
public class ConstructorClassLevelExample {
}
现在,如果我更改外观并删除@annotation过滤器,那么我看到Aspectj正在拦截该调用。另外,如果我创建一个默认的构造函数,然后用注释对其进行注释,那么它也可以使用。
但是,我希望注释能够存在于类中,这样,如果我有1个构造函数或10个构造函数,它们都将被相同地拦截(并且我只需要将其放在类上)即可。
答案 0 :(得分:0)
如果我使用@within(ConstructorClassLevelExample),似乎可以!