这两个切入点有什么区别?我什么时候应该使用一种结构而不是另一种结构?
pointcut first_pointcut(): target(MyClass) && call(void myMethod(..))
pointcut second_pointcut(): call(void MyClass.myMethod(..))
我在阅读AspectJ Programming Guide时开始感到困惑。本指南中的一些示例将使用如下签名模式将切入点应用程序限制为特定类:
call(public * Figure.* (..))
它“挑选出对 Figure 的公共方法的每个调用。” 其他示例使用 target 将切入点应用程序限制为某些类,如下所示:
pointcut setter(): target(Point) &&
(call(void setX(int)) ||
call(void setY(int)));
它“在 Point 的实例上调用时挑选出对 setX(int) 或 setY(int) 的每个调用。”