对于最新稳定版本,请使用 Spring Integration 7.0.0spring-doc.cadn.net.cn

带注释配置路由器

使用@Router要注释方法,该方法可以返回消息频道或者字符串类型。 在后一种情况下,端点会像解析默认输出信道一样解析信道名称。 此外,该方法可以返回单个值或集合。 如果回收了集合,回复消息会发送到多个通道。 总结来说,以下方法签名均有效:spring-doc.cadn.net.cn

@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,如下例所示,该值被映射到头部值,并在注释支持中有所说明:spring-doc.cadn.net.cn

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

另请参阅Java DSL章节中的“消息路由器”,了解更多关于路由器配置的信息。spring-doc.cadn.net.cn