我不知道这是否可能,但我正在尝试编写一个切入点,该切入点将匹配任何返回实现特定接口的对象的方法。
鉴于以下情况:
public class User implements Auditable{
private int id;
private String name;
public String getName(){
return name;
}
}
和可审计的接口:
public interface Auditable{
public String getName();
}
还有一些随机类:
public class RandomClass{
public User getNewUser(){
User u = new User();
return u;
}
}
如何编写一个“AfterReturning”切入点来捕获任何实现 Auditable 的名为 getNew* 的方法?
以下作品:
pointcut auditablePointcut(): call(public * *.getNew*(..))
但是,这将匹配任何返回类型。以下不起作用:
pointcut auditablePointcut(): call(public Auditable *.getNew*(..))
我想我可以使用 if() 来编写它,但这似乎有点笨拙(我还没有尝试过)。还是有更优雅的方式?