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技巧)。