对于最新的稳定版本,请使用 Spring Integration 6.3.1Spring中文文档

对于最新的稳定版本,请使用 Spring Integration 6.3.1Spring中文文档

本节介绍所有路由器参数的通用参数(在本章前面显示的两个表中勾选所有框的参数)。Spring中文文档

链条内外

以下参数对链内外的所有路由器都有效。Spring中文文档

apply-sequence

此属性指定是否应将序列号和大小标头添加到每封邮件中。 此可选属性默认为 。falseSpring中文文档

default-output-channel

如果设置了此属性,则此属性将提供对通道的引用,如果通道解析无法返回任何通道,则应在该通道中发送消息。 如果未提供默认输出通道,则路由器将引发异常。 如果要以静默方式删除这些消息,请将默认输出通道属性值设置为 。nullChannelSpring中文文档

从版本 6.0 开始,设置默认输出通道也会将选项重置为 。 因此,不会尝试从通道名称中解析通道,而是回退到此默认输出通道 - 类似于 Java 语句。 如果设置为显式,则进一步的逻辑取决于选项:从键到未解析通道的消息仅当是 时才能到达。 因此,初始化阶段会拒绝提供且 & 都设置为的配置。channelKeyFallbackfalseswitchchannelKeyFallbacktrueresolutionRequireddefaultOutputChannelresolutionRequiredfalsedefaultOutputChannelchannelKeyFallbackresolutionRequiredtrueAbstractMappingMessageRouter
resolution-required

此属性指定是否必须始终将通道名称成功解析为存在的通道实例。 如果设置为 ,则在无法解析信道时引发 a。 将此属性设置为会导致忽略任何无法解析的通道。 此可选属性默认为 。trueMessagingExceptionfalsetrueSpring中文文档

消息仅发送到 ,如果指定,则 when is 且通道未解析。default-output-channelresolution-requiredfalse
ignore-send-failures

如果设置为 ,则忽略发送到消息通道的失败。 如果设置为 ,则会改为抛出 a,并且如果路由器解析多个信道,则任何后续信道都不会收到该消息。truefalseMessageDeliveryExceptionSpring中文文档

此属性的确切行为取决于消息发送到的类型。 例如,当使用直接通道(单线程)时,发送失败可能是由更下游的组件引发的异常引起的。 但是,当将消息发送到简单队列通道(异步)时,引发异常的可能性非常小。ChannelSpring中文文档

虽然大多数路由器路由到单个通道,但它们可以返回多个通道名称。 例如,正是这样做的。 如果在仅路由到单个通道的路由器上将此属性设置为,则会吞下任何导致的异常,这通常意义不大。 在这种情况下,最好在流入口点的错误流中捕获异常。 因此,当路由器实现返回多个通道名称时,将属性设置为通常更有意义,因为失败通道后面的其他通道仍将接收消息。recipient-list-routertrueignore-send-failurestrue

此属性默认为 。falseSpring中文文档

timeout

该属性指定将消息发送到目标消息通道时等待的最长时间(以毫秒为单位)。timeoutSpring中文文档

从版本 6.0 开始,设置默认输出通道也会将选项重置为 。 因此,不会尝试从通道名称中解析通道,而是回退到此默认输出通道 - 类似于 Java 语句。 如果设置为显式,则进一步的逻辑取决于选项:从键到未解析通道的消息仅当是 时才能到达。 因此,初始化阶段会拒绝提供且 & 都设置为的配置。channelKeyFallbackfalseswitchchannelKeyFallbacktrueresolutionRequireddefaultOutputChannelresolutionRequiredfalsedefaultOutputChannelchannelKeyFallbackresolutionRequiredtrueAbstractMappingMessageRouter
消息仅发送到 ,如果指定,则 when is 且通道未解析。default-output-channelresolution-requiredfalse
虽然大多数路由器路由到单个通道,但它们可以返回多个通道名称。 例如,正是这样做的。 如果在仅路由到单个通道的路由器上将此属性设置为,则会吞下任何导致的异常,这通常意义不大。 在这种情况下,最好在流入口点的错误流中捕获异常。 因此,当路由器实现返回多个通道名称时,将属性设置为通常更有意义,因为失败通道后面的其他通道仍将接收消息。recipient-list-routertrueignore-send-failurestrue

顶层(链外)

以下参数仅对链外的所有顶级路由器有效。Spring中文文档

id

标识基础 Spring Bean 定义,对于路由器,该定义是 或 的实例,具体取决于路由器的实例是 是 还是 。 这是一个可选属性。EventDrivenConsumerPollingConsumerinput-channelSubscribableChannelPollableChannelSpring中文文档

auto-startup

此“生命周期”属性指示是否应在应用程序上下文启动期间启动此组件。 此可选属性默认为 。trueSpring中文文档

input-channel

此端点的接收消息通道。Spring中文文档

order

此属性定义当此终结点作为订阅者连接到通道时的调用顺序。 当该通道使用故障转移调度策略时,这一点尤其重要。 当此终结点本身是具有队列的通道的轮询使用者时,它不起作用。Spring中文文档