此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1! |
本节介绍所有路由器参数的通用参数(在本章前面显示的两个表中勾选所有框的参数)。
链条内外
以下参数对链内外的所有路由器都有效。
apply-sequence
-
此属性指定是否应将序列号和大小标头添加到每封邮件中。 此可选属性默认为 。
false
default-output-channel
-
如果设置了此属性,则此属性将提供对通道的引用,如果通道解析无法返回任何通道,则应在该通道中发送消息。 如果未提供默认输出通道,则路由器将引发异常。 如果要以静默方式删除这些消息,请将默认输出通道属性值设置为 。
nullChannel
从版本 6.0 开始,设置默认输出通道也会将选项重置为 。 因此,不会尝试从通道名称中解析通道,而是回退到此默认输出通道 - 类似于 Java 语句。 如果设置为显式,则进一步的逻辑取决于选项:从键到未解析通道的消息仅当是 时才能到达。 因此,初始化阶段会拒绝提供且 & 都设置为的配置。 channelKeyFallback
false
switch
channelKeyFallback
true
resolutionRequired
defaultOutputChannel
resolutionRequired
false
defaultOutputChannel
channelKeyFallback
resolutionRequired
true
AbstractMappingMessageRouter
resolution-required
-
此属性指定是否必须始终将通道名称成功解析为存在的通道实例。 如果设置为 ,则在无法解析信道时引发 a。 将此属性设置为会导致忽略任何无法解析的通道。 此可选属性默认为 。
true
MessagingException
false
true
消息仅发送到 ,如果指定,则 when is 且通道未解析。 default-output-channel
resolution-required
false
ignore-send-failures
-
如果设置为 ,则忽略发送到消息通道的失败。 如果设置为 ,则会改为抛出 a,并且如果路由器解析多个信道,则任何后续信道都不会收到该消息。
true
false
MessageDeliveryException
此属性的确切行为取决于消息发送到的类型。 例如,当使用直接通道(单线程)时,发送失败可能是由更下游的组件引发的异常引起的。 但是,当将消息发送到简单队列通道(异步)时,引发异常的可能性非常小。
Channel
虽然大多数路由器路由到单个通道,但它们可以返回多个通道名称。 例如,正是这样做的。 如果在仅路由到单个通道的路由器上将此属性设置为,则会吞下任何导致的异常,这通常意义不大。 在这种情况下,最好在流入口点的错误流中捕获异常。 因此,当路由器实现返回多个通道名称时,将属性设置为通常更有意义,因为失败通道后面的其他通道仍将接收消息。 recipient-list-router
true
ignore-send-failures
true
此属性默认为 。
false
timeout
-
该属性指定将消息发送到目标消息通道时等待的最长时间(以毫秒为单位)。
timeout
从版本 6.0 开始,设置默认输出通道也会将选项重置为 。
因此,不会尝试从通道名称中解析通道,而是回退到此默认输出通道 - 类似于 Java 语句。
如果设置为显式,则进一步的逻辑取决于选项:从键到未解析通道的消息仅当是 时才能到达。
因此,初始化阶段会拒绝提供且 & 都设置为的配置。channelKeyFallback false switch channelKeyFallback true resolutionRequired defaultOutputChannel resolutionRequired false defaultOutputChannel channelKeyFallback resolutionRequired true AbstractMappingMessageRouter |
消息仅发送到 ,如果指定,则 when is 且通道未解析。default-output-channel resolution-required false |
虽然大多数路由器路由到单个通道,但它们可以返回多个通道名称。
例如,正是这样做的。
如果在仅路由到单个通道的路由器上将此属性设置为,则会吞下任何导致的异常,这通常意义不大。
在这种情况下,最好在流入口点的错误流中捕获异常。
因此,当路由器实现返回多个通道名称时,将属性设置为通常更有意义,因为失败通道后面的其他通道仍将接收消息。recipient-list-router true ignore-send-failures true |
顶层(链外)
以下参数仅对链外的所有顶级路由器有效。
id
-
标识基础 Spring Bean 定义,对于路由器,该定义是 或 的实例,具体取决于路由器的实例是 是 还是 。 这是一个可选属性。
EventDrivenConsumer
PollingConsumer
input-channel
SubscribableChannel
PollableChannel
auto-startup
-
此“生命周期”属性指示是否应在应用程序上下文启动期间启动此组件。 此可选属性默认为 。
true
input-channel
-
此端点的接收消息通道。
order
-
此属性定义当此终结点作为订阅者连接到通道时的调用顺序。 当该通道使用故障转移调度策略时,这一点尤其重要。 当此终结点本身是具有队列的通道的轮询使用者时,它不起作用。