我想用Aspect拦截具有特定签名的方法调用。
我的切入点应该是这样的:
execution(public Result * (Input))"
但是Result
并且Input
是abstract
。
这个切入点是否也匹配所有返回子类型Result
并使用子类型的方法Input
?因为那是我的意图。
非常接近。您需要在类型名称后立即添加一个加号。
execution(public Result+ * (Input+))
这是来自AspectJ文档的示例。Spring 使用 AspectJ 语法的受限版本。
pointcut callToUndefinedMethod():
call(* AbstractFacade+.*(..))
&& !call(* AbstractFacade.*(..));
这是(简洁的)文档
SubtypePattern - SubtypePattern 中的所有类型,带 + 的模式。