我正在尝试编写一个切入点,用于拦截带注释成员的getter。
public class MyClass {
private String volume;
@MyAttribute
private Validity validity;
public void setValidity( Validity obj ){
validity = obj;
}
public Validity getValidity(){
return validity;
}
}
有没有办法编写一个切入点,根据getValidity()
注释validity
来拦截对@MyAttribute
的所有来电?换句话说,我希望为使用@MyAttribute
注释的成员字段的任何getter创建一个切入点。
一个简单的getter切入点可以建议任何getter方法:
pointcut embeddedGetter() : execution( public * com.ia.domain..get*());
但是这不会指定必须对其获得的字段进行注释。如果我在public
前放置一个修饰符,指定必须注释getter方法,情况并非如此。
这是否可行?
答案 0 :(得分:1)
在玩了AspectJ之后,我终于重新发现了我想要的加入点:
pointcut embeddedGetter() : get( @MyAnnotation Validity *..* );
关键是不要使用execution
切入点,而是使用get
。