推奨されるハンドラープロパティ
アドバイス内からハンドラープロパティにアクセスすると便利な場合があります。例: ほとんどのハンドラーは NamedComponent を実装して、コンポーネント名にアクセスできるようにします。
ターゲットオブジェクトには、target 引数(AbstractRequestHandlerAdvice をサブクラス化する場合)または invocation.getThis() (org.aopalliance.intercept.MethodInterceptor を実装する場合)を介してアクセスできます。
ハンドラー全体がアドバイスされる場合(ハンドラーが応答を生成しない場合やアドバイスが HandleMessageAdvice を実装する場合など)、次の例に示すように、ターゲットオブジェクトを NamedComponent などのインターフェースにキャストできます。
String componentName = ((NamedComponent) target).getComponentName();MethodInterceptor を直接実装する場合、次のようにターゲットオブジェクトをキャストできます。
String componentName = ((NamedComponent) invocation.getThis()).getComponentName();handleRequestMessage() メソッドのみが推奨される場合(応答生成ハンドラーで)、ハンドラー全体(AbstractReplyProducingMessageHandler)にアクセスする必要があります。次の例は、その方法を示しています。
AbstractReplyProducingMessageHandler handler =
((AbstractReplyProducingMessageHandler.RequestHandler) target).getAdvisedHandler();
String componentName = handler.getComponentName();