Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AspectJ与切入点混淆_Java_Aop_Aspectj_Pointcuts - Fatal编程技术网

Java AspectJ与切入点混淆

Java AspectJ与切入点混淆,java,aop,aspectj,pointcuts,Java,Aop,Aspectj,Pointcuts,我如何表达一个只在从另一个方法中调用而不是直接调用时才发现方法的切入点 例如: Foo() calls Bar() calls object.Method() 也 我只希望切入点在Foo()中工作 我尝试了“withincode”,但这似乎只能直接起作用 谢谢 Eric您想要的实际上需要两点: 调用Bar类中的方法或构造函数,并在Foo类中执行,或最终使用带incode指示符的Foo()构造函数。例如,对这个连接点的建议可以设置一个标志,当从Foo()调用时该标志为true,否则为falso。

我如何表达一个只在从另一个方法中调用而不是直接调用时才发现方法的切入点

例如:

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

我只希望切入点在Foo()中工作

我尝试了“withincode”,但这似乎只能直接起作用

谢谢
Eric

您想要的实际上需要两点:

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

  • 我认为cflow和cflowbelow只是用来处理执行流中的这种类型的标记。
    NotFoo() calls Bar() calls object.Method()