Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.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
Spring 从aspectj中排除特定的方法调用(在另一个方法中)_Spring_Aop_Aspectj_Spring Aop - Fatal编程技术网

Spring 从aspectj中排除特定的方法调用(在另一个方法中)

Spring 从aspectj中排除特定的方法调用(在另一个方法中),spring,aop,aspectj,spring-aop,Spring,Aop,Aspectj,Spring Aop,我试图排除另一个方法中的特定方法调用被拦截: public Class A { public void foo1() {...} public void foo2() { foo1(); } } 我只想排除从foo2发出的foo1调用,而不想排除其他调用:应该包括someAObject.foo1()&someAObject.foo2() 有人知道如何使用SpringAOP实现这一点吗? 谢谢 这应该有效: execution(* A.*(..)) &&a

我试图排除另一个方法中的特定方法调用被拦截:

public Class A {
   public void foo1() {...}

   public void foo2() {
     foo1();
   }

}
我只想排除从foo2发出的foo1调用,而不想排除其他调用:应该包括someAObject.foo1()&someAObject.foo2()

有人知道如何使用SpringAOP实现这一点吗? 谢谢

这应该有效:

execution(* A.*(..)) && !execution(* A.foo2(..))

我建议您停止使用spring,除非您可以为每个调用编写两条around建议,您可以在第一个调用中设置
ThreadLocal
,在第二个调用中设置
Procedue
,并检查它,而不是
Procedure
ing(如果已设置)。非常难看的黑客。

但是foo2不会被排除在外吗?(我不想那样做)。大概:call(*A.foo1())和&execution(*A.foo2())对不起,我不明白这个问题。您无法使用SpringAOP(没有另一个答案中建议的ThreadLocal技巧)。