我想在返回值后拦截方法。
该方法是接口上的默认方法,我希望获得默认intf实现的返回值,并希望在具体类中重写实现。
这是我的方面:
@Aspect
@Configuration
public class ResAspect {
@AfterReturning(pointcut = "within(org.my.app.Strategy+) && execution(* shouldEnter(..))", returning = "res")
public void shouldOperate(JoinPoint jp, boolean res) {
System.out.println();
}
}
这是默认方法:
default boolean shouldEnter(int i, Rec r) {
return !evaluate(i, r);
}
您可以猜测它不起作用。那么我可以通过Spring AOP实现我想要的吗?
我可以在方面内访问实现类实例及其属性吗?
编辑:我要拦截的界面位于另一个模块中
答案 0 :(得分:0)
您可以在建议内访问在其上调用方法的实例(也称为目标):
YourInterface interfaceReference = (YourInterface) joinPoint.getTarget();
然后,您可以使用检索到的对象访问任何内容。