AspectJ与切入点混淆

时间:2010-10-05 06:58:38

标签: java aop aspectj pointcuts

我怎样才能表达一个只在从另一个方法中调用时才能找到方法的切入点,而不是直接?

例如:

Foo() calls Bar() calls object.Method()

NotFoo() calls Bar() calls object.Method()

我只希望切入点在Foo()

中工作

我试过“内部代码”,但这似乎只是直接起作用。

由于 埃里克

1 个答案:

答案 0 :(得分:4)

您想要的实际上需要两个连接点:

    Bar类中的
  1. call方法或构造函数,并且within Foo类或最终带有withincode指示符的Foo()构造函数。例如,对此连接点的建议可以设置一个标志,当从Foo()调用时为true,否则为falso。这个变量可以存储在HashMap中,线程是关键,以避免并发问题。
  2. withincode Bar()构造函数或Bar类和call object.Method()。对此连接点的建议还必须检查该标志是否设置为true。最后再次将Foo标志设置为false。