我在這個類中有一個Class,稱之爲X,我已經成功地建議了一個方法從Annotated Spring調用它的method(){}。從已經在Spring中建議的方法中觸發第二個建議的方法
所以,在這裏,它是:
public class X {
public void method(){...}
public void method2(){...}
}
這裏是我的方式,縮短課程:
@Aspect
public class MyAspect{
@Pointcut("execution(* X.method(..))")
public void methodJP(){}
@Pointcut("execution(* X.method2(..))")
public void method2JP(){}
@Around("methodJP()")
public void doMethodJP(ProceedingJoinPoint pjp) throws Exception {
pjp.proceed(); //Amongst other things!!!
}
@After("method2JP()")
public void doMethod2JP(JoinPoint jp) throws Exception {
//Do some stuff here
}
}
現在......兩個連接點,我十之內很好地工作,但是,我方法,我也調用method2JP()建議的方法...當然,我的method2JP不會被觸發。
有什麼辦法可以讓這個工作?
謝謝。
我喜歡它......讓我給它「旋轉」! –
我覺得貧民窟這樣做,但它的工作。謝謝! –
是的,它完全是貧民窟。更重要的是,它打破了AOP的全部想法,因爲它迫使你修改你建議的代碼。它的工作原理(我自己也用過幾次「黑客」),但將第二種方法分解成另一個bean可能更優雅。它是凝聚力/碎片化以及符合Springs限制的平衡。但就像有人說,如果它有效,它很漂亮... – pap