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