此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.0! |
建议的处理程序属性
有时,从 advice 中访问 handler 属性很有用。
例如,大多数处理程序都实现了允许您访问组件名称。NamedComponent
可以通过参数 (当 subclassing 时 )或 (当实现时)访问目标对象。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();