跳到主要内容
版本:7.0.2

建议的处理程序属性

DeepSeek V3 中英对照 Advised Handler Properties

有时,在通知中访问处理器的属性会很有用。例如,大多数处理器都实现了 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();