路由器是许多消息传递体系结构中的关键元素。 它们使用来自消息通道的消息,并根据一组条件将每个使用的消息转发到一个或多个不同的消息通道。

Spring Integration 提供以下路由器:

路由器实现共享许多配置参数。 但是,路由器之间存在某些差异。 此外,配置参数的可用性取决于路由器是在链内还是链外使用。 为了提供快速概述,所有可用的属性都列在下表中。

下表显示了可用于链外部路由器的配置参数:

表 1.链外的路由器
属性 路由器 标头值路由器 XPath路由器 有效负载类型路由器 收件人列表路由 异常类型路由器

apply-序列

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

默认输出通道

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

需要分辨率

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

ignore-send-failures

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

超时

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

同上

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

自动启动

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

输入通道

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

次序

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

方法

刻度线

裁判

刻度线

表达

刻度线

标头名称

刻度线

计算为字符串

刻度线

xpath-表达式-ref

刻度线

转炉

刻度线

下表显示了链中路由器可用的配置参数:

表 2.链条内的路由器
属性 路由器 标头值路由器 XPath路由器 有效负载类型路由器 收件人列表路由器 异常类型路由器

apply-序列

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

默认输出通道

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

需要分辨率

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

ignore-send-failures

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

超时

刻度线
刻度线
刻度线
刻度线
刻度线
刻度线

同上

自动启动

输入通道

次序

方法

刻度线

裁判

刻度线

表达

刻度线

标头名称

刻度线

计算为字符串

刻度线

xpath-表达式-ref

刻度线

转炉

刻度线

从Spring Integration 2.1开始,所有路由器实现的路由器参数都更加标准化。 因此,一些小的更改可能会破坏旧的基于 Spring Integration 的应用程序。

从 Spring Integration 2.1 开始,该属性被删除,以支持将其行为与该属性合并。 此外,该属性现在默认为 。ignore-channel-name-resolution-failuresresolution-requiredresolution-requiredtrue

在这些更改之前,该属性默认为 ,导致在未解析通道且未设置任何通道时以静默方式丢弃消息。 新行为至少需要一个已解析的通道,默认情况下,如果未确定通道(或尝试发送不成功),则会抛出 。resolution-requiredfalsedefault-output-channelMessageDeliveryException

如果您确实希望静默丢弃消息,可以设置 .default-output-channel="nullChannel"

从Spring Integration 2.1开始,所有路由器实现的路由器参数都更加标准化。 因此,一些小的更改可能会破坏旧的基于 Spring Integration 的应用程序。

从 Spring Integration 2.1 开始,该属性被删除,以支持将其行为与该属性合并。 此外,该属性现在默认为 。ignore-channel-name-resolution-failuresresolution-requiredresolution-requiredtrue

在这些更改之前,该属性默认为 ,导致在未解析通道且未设置任何通道时以静默方式丢弃消息。 新行为至少需要一个已解析的通道,默认情况下,如果未确定通道(或尝试发送不成功),则会抛出 。resolution-requiredfalsedefault-output-channelMessageDeliveryException

如果您确实希望静默丢弃消息,可以设置 .default-output-channel="nullChannel"