切入点中的抽象类型

时间:2012-07-06 06:51:25

标签: java spring aspectj aop pointcut

我想拦截带有Aspect的特定签名的方法调用。

我的切入点应该是这样的:

execution(public Result * (Input))"

ResultInputabstract

此切入点是否也会匹配所有方法,这些方法会返回Result的子类型并使用Input的子类型?因为那是我的意图。

1 个答案:

答案 0 :(得分:3)

非常接近。您需要在类型名称后面立即添加一个加号。

execution(public Result+ * (Input+))

以下是AspectJ doc的示例。 Spring使用AspectJ语法的受限版本。

pointcut callToUndefinedMethod():
    call(* AbstractFacade+.*(..))
    && !call(* AbstractFacade.*(..));

这是(简洁)documentation

  

SubtypePattern - SubtypePattern中的所有类型,带有+。

的模式