我正在尝试编写一个切入点,该切入点将拦截带注释的成员的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方法:
pointcut embeddedGetter() : execution( public * com.ia.domain..get*());
但这并不会指定必须对要获取的字段进行注释。而且,如果我在
public
前面放置了一个修饰符,该修饰符指定必须对getter方法进行注释,事实并非如此。这甚至可行吗?
最佳答案
在玩完AspectJ之后,我终于重新发现了我想要的连接点:
pointcut embeddedGetter() : get( @MyAnnotation Validity *..* );
关键不是使用
execution
切入点,而是使用get
。关于java - 有没有一种方法可以将获取方法的切入点写入带注释的字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24622434/