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

常用路由器参数

本节介绍所有路由器参数的通用参数(在本章前面显示的两个表中勾选了所有框的参数)。spring-doc.cadn.net.cn

链内部和外部

以下参数对链内外的所有路由器都有效。spring-doc.cadn.net.cn

apply-sequence

此属性指定是否应将 sequence number 和 size 标头添加到每条消息中。 此可选属性默认为false.spring-doc.cadn.net.cn

default-output-channel

如果设置,则此属性将提供对通道的引用,如果通道解析无法返回任何通道,则应将消息发送到该通道。 如果未提供默认 output channel,则 router 将引发异常。 如果要改为以静默方式删除这些消息,请将默认 output channel 属性值设置为nullChannel.spring-doc.cadn.net.cn

从版本 6.0 开始,设置默认输出通道也会重置channelKeyFallback选项设置为false. 因此,不会尝试从通道的名称解析通道,而是回退到这个默认输出通道 - 类似于 Javaswitch陈述。 如果channelKeyFallback设置为true显式地,进一步的 logic 取决于resolutionRequired选项:消息 to non-resolved channel from key 可以到达defaultOutputChannel仅当resolutionRequiredfalse. 因此,其中defaultOutputChannel提供,并且channelKeyFallback & resolutionRequired设置为trueAbstractMappingMessageRouter初始化阶段。
resolution-required

此属性指定是否必须始终将通道名称成功解析为存在的通道实例。 如果设置为true一个MessagingException在无法解析通道时引发。 将此属性设置为false导致忽略任何无法解析的通道。 此可选属性默认为true.spring-doc.cadn.net.cn

Message 仅发送到default-output-channel,如果指定,则resolution-requiredfalse并且通道未解析。
ignore-send-failures

如果设置为true,则忽略发送到消息通道的失败。 如果设置为false一个MessageDeliveryException被抛出,并且如果路由器解析多个 channel,则任何后续 channel 都不会收到该消息。spring-doc.cadn.net.cn

此属性的确切行为取决于Channel消息将发送到 。 例如,当使用直接通道(单线程)时,发送失败可能是由更远的下游组件抛出的异常引起的。 但是,当将消息发送到简单的队列通道 (异步) 时,引发异常的可能性相当小。spring-doc.cadn.net.cn

虽然大多数路由器路由到单个通道,但它们可以返回多个通道名称。 这recipient-list-router,就是这样做的。 如果将此属性设置为true在仅路由到单个 channel 的路由器上,任何引起的 exception 都会被吞噬,这通常没有什么意义。 在这种情况下,最好在流入口点捕获错误流中的异常。 因此,将ignore-send-failures属性设置为true当 Router 实现返回多个 channel name 时,通常更有意义,因为失败的 channel 之后的其他 channel(s) 仍将收到该消息。

此属性默认为false.spring-doc.cadn.net.cn

timeout

timeout属性指定在向目标 Message Channel 发送消息时等待的最长时间(以毫秒为单位)。spring-doc.cadn.net.cn

顶层(链外)

以下参数仅对链之外的所有顶级路由器有效。spring-doc.cadn.net.cn

id

标识底层 Spring bean 定义,在路由器的情况下,它是EventDrivenConsumerPollingConsumer,具体取决于路由器的input-channel是一个SubscribableChannelPollableChannel分别。 这是一个可选属性。spring-doc.cadn.net.cn

auto-startup

此 “lifecycle” 属性指示是否应在应用程序上下文启动期间启动此组件。 此可选属性默认为true.spring-doc.cadn.net.cn

input-channel

此终端节点的接收消息通道。spring-doc.cadn.net.cn

order

此属性定义当此终端节点作为订阅者连接到通道时的调用顺序。 当该通道使用 failover dispatching 策略时,这一点尤其重要。 当此终端节点本身是具有队列的通道的轮询使用者时,它不起作用。spring-doc.cadn.net.cn