此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1! |
建议的处理程序属性
有时,从通知中访问处理程序属性很有用。例如,大多数处理程序实现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();