メソッドアノテーションからの値を利用する特定のポイントカットを作成するためのヘルプが必要であるという元の質問から始めました
私は、自分が取っているアプローチを変えるために、別の質問をしたいと思いました。メソッド(ナビゲーション)があり、そのメソッド内で、@Aroundのアドバイスが必要な別のメソッドを呼び出しています。
@RequestMapping(method = RequestMethod.GET)
public String navigation(ModelMap model) {
...
// Call Auto Handling
logger.info("Call AutoHandling");
this.processAutoHandling(callSession, FunctionalArea.PRE_MAIN_MENU);
}
...
return forward(returnView);
}
メソッドが同じクラス内にある場合、これを機能させることができないように見えるので、これは可能ですか?
これは、オブジェクト自体にない場合に機能します。
@Around("execution(* *.processAutoHandling(..)) &&" +
"args(callSession, functionalArea) && " +
"args(functionalArea) && " +
"target(bean)"
)
public Object processAutoHandlingCall2(ProceedingJoinPoint jp,
CallSession callSession,
FunctionalArea functionalArea,
Object bean)
throws Throwable {
logger.debug("processAutoHandleCall");
return jp.proceed();
}
私のコントローラーでこの呼び出しを使用すると:
autoHandlingComponent.processAutoHandling(callSession, FunctionalArea.PRE_MAIN_MENU);
それ以外の
this.processAutoHandling(callSession, FunctionalArea.PRE_MAIN_MENU);