如需使用最新稳定版本,请使用 Spring Integration 7.0.4spring-doc.cadn.net.cn

常见路由参数

此部分描述了所有路由器参数共有的参数(在本章早期显示的两张表中所有方框都打勾的参数)。spring-doc.cadn.net.cn

链的内部与外部

以下参数适用于所有链内外的所有路由器。spring-doc.cadn.net.cn

apply-sequence

此属性指定是否应在每个消息中添加序列号和大小标头。 此可选属性默认值为falsespring-doc.cadn.net.cn

default-output-channel

如果设置此属性,则该属性提供一个引用,指示如果通道解析无法返回任何通道,则应向哪个通道发送消息。 如果没有提供默认输出通道,则路由器将抛出异常。 如果您希望无声地丢弃这些消息,请将默认输出通道属性值设置为 nullChannelspring-doc.cadn.net.cn

从 6.0 版本开始,设置默认输出通道也会将 channelKeyFallback 选项重置为 false。 因此,不会再尝试根据名称解析通道,而是回退到此默认输出通道——类似于 Java 中的 switch 语句。 如果 channelKeyFallback 被显式设置为 true,则后续逻辑取决于 resolutionRequired 选项:来自键的未解析通道的消息仅当 resolutionRequiredfalse 时才能到达 defaultOutputChannel。 因此,在 defaultOutputChannel 已提供且 channelKeyFallbackresolutionRequired 均设置为 true 的配置下,AbstractMappingMessageRouter 初始化阶段会拒绝该配置。
resolution-required

此属性指定频道名称是否必须始终解析为存在的通道实例。 如果设置为true,则在无法解析通道时会抛出MessagingException。 将该属性设置为false会使任何未解析的通道被忽略。 此可选属性默认值为truespring-doc.cadn.net.cn

仅当指定的resolution-requiredfalse且通道未解析时,消息才会发送给default-output-channel
ignore-send-failures

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

此属性的行为取决于发送消息的目标Channel的类型。 例如,在使用直接通道(单线程)的情况下,发送失败可能是由下游组件抛出的异常引起的。 然而,在向简单队列通道发送消息(异步情况下),抛出异常的可能性相对较小。spring-doc.cadn.net.cn

大多数路由器会路由到单一通道,但它们可以返回多个通道名称。

spring-doc.cadn.net.cn

例如recipient-list-router就会这样做。spring-doc.cadn.net.cn

如果你在一个只路由到单一通道的路由器上将此属性设置为true,任何引发的异常都会被吞掉,这通常意义不大。
在这种情况下,在流入口点处捕获异常在错误流中会更有意义。spring-doc.cadn.net.cn

因此,当路由器实现返回多个通道名称时,将ignore-send-failures属性设置为true通常更合理,因为其他通道(失败的通道之后)仍会接收到消息。spring-doc.cadn.net.cn

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

timeout

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

顶级(链外)

以下参数仅在所有顶级路由器(不在链中的)之间有效。spring-doc.cadn.net.cn

id

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

auto-startup

此“生命周期”属性表示该组件是否应该在应用程序上下文启动时被启动。 此可选属性默认值为truespring-doc.cadn.net.cn

input-channel

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

order

此属性定义了当该端点作为频道的订阅者连接时的调用顺序。 这在该频道使用失败重试分发策略时尤为重要。 当该端点本身是一个轮询消费者且通道带有队列时,此属性无效。spring-doc.cadn.net.cn