使用注解配置路由器
当使用 @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) {...}
除了基于 payload 的路由外,消息还可以根据消息头中的元数据(作为属性或特性)进行路由。在这种情况下,带有 @Router
注解的方法可以包含一个带有 @Header
注解的参数,该参数映射到头值,如下例所示,并在 注解支持 中有详细说明
@Router
public List<String> route(@Header("orderStatus") OrderStatus status)
对于基于 XML 的消息路由,包括 XPath 支持,请参见 XML 支持 - 处理 XML Payload。 |
有关路由器配置的更多信息,另请参见 Java DSL 章中的 消息路由器。