跳到主要内容

建议的处理器属性

QWen Plus 中英对照 Advised Handler Properties

有时,从建议内部访问处理器属性很有用。例如,大多数处理器实现了 NamedComponent ,以便让你访问组件名称。

目标对象可以通过 target 参数(在继承 AbstractRequestHandlerAdvice 时)或 invocation.getThis()(在实现 org.aopalliance.intercept.MethodInterceptor 时)访问。

当整个处理器被建议(例如,当处理器不生成回复或建议实现 HandleMessageAdvice 时),您可以将目标对象转换为接口,例如 NamedComponent,如下例所示:

String componentName = ((NamedComponent) target).getComponentName();
java

当你直接实现 MethodInterceptor 时,你可以将目标对象进行如下类型转换:

String componentName = ((NamedComponent) invocation.getThis()).getComponentName();
java

当只有 handleRequestMessage() 方法被建议(在回复生成处理程序中),你需要访问完整的处理程序,它是一个 AbstractReplyProducingMessageHandler。以下示例展示了如何做到这一点:

AbstractReplyProducingMessageHandler handler =
((AbstractReplyProducingMessageHandler.RequestHandler) target).getAdvisedHandler();

String componentName = handler.getComponentName();
java