使用注解配置路由器

当使用@Router注解方法时,该方法可以返回MessageChannelString类型。在后一种情况下,端点会像处理默认输出通道一样解析通道名称。此外,该方法可以返回单个值或集合。如果返回集合,则回复消息将发送到多个通道。总而言之,以下方法签名都是有效的

@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注解的参数,该参数被映射到一个头值,如下例所示,并在注解支持中进行了说明

@Router
public List<String> route(@Header("orderStatus") OrderStatus status)
有关 XML 基消息的路由(包括 XPath 支持),请参阅XML 支持 - 处理 XML 有效负载

另请参阅 Java DSL 章节中的消息路由器,以获取有关路由器配置的更多信息。