此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1! |
使用注释配置路由器
使用时@Router
要注释方法,该方法可以返回MessageChannel
或String
类型。
在后一种情况下,端点会像对默认输出通道一样解析通道名称。
此外,该方法可以返回单个值或集合。
如果返回集合,则回复消息将发送到多个通道。
总而言之,以下方法签名都是有效的:
@Router
public MessageChannel route(Message message) {...}
@Router
public List<MessageChannel> route(Message message) {...}
@Router
public String route(Foo payload) {...}
@Router
public List<String> route(Foo payload) {...}
除了基于有效负载的路由之外,还可以根据消息标头中可用的元数据作为属性或属性来路由消息。
在这种情况下,一个用@Router
可以包含一个标有@Header
,该值映射到标头值,如以下示例所示,并在 Annotation Support 中记录:
@Router
public List<String> route(@Header("orderStatus") OrderStatus status)
有关基于 XML 的消息的路由,包括 XPath 支持,请参阅 XML 支持 - 处理 XML 有效负载。 |
有关路由器配置的更多信息,另请参见 Java DSL 一章中的消息路由器。