【发布时间】:2014-12-24 10:22:14
【问题描述】:
我定义了一个方面(在 spring 项目中),它应该在方法执行后被调用。
class Crap {
public void blah(){
//Do Something here
}
public void blah_internal(){
blah();
//Do Something else here
}
}
class MyAspect {
@After("execution(* Crap.blah(..))")
public void doSomething(JoinPoint joinPoint) {
System.out.println("Coming into the aspect");
//Some logic here
}
}
现在如果我正常调用 Crap.blah 方法,那么方面就可以工作了
new Crap().blah(); //Prints "Coming into the aspect"
但是如果我使用其他方法调用该方法,它就不起作用
new Crap().blah_internal(); //Prints nothing
这里出了什么问题?
【问题讨论】:
-
我认为你应该使用 call() 而不是 execution()。怎么样?
-
修改了问题,好像不是线程的问题。当切入点被同一个类的方法调用时,它似乎没有被触发
标签: java spring aop aspectj spring-aop