推奨されるハンドラープロパティ

アドバイス内からハンドラープロパティにアクセスすると便利な場合があります。例: ほとんどのハンドラーは 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();