2

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

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

execution(public Result * (Input))"

但是Result并且Inputabstract

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

4

1 回答 1

3

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

execution(public Result+ * (Input+))

这是来自AspectJ文档的示例。Spring 使用 AspectJ 语法的受限版本。

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

这是(简洁的)文档

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

于 2012-07-06T23:55:06.073 回答