此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.0spring-doc.cn

4.0 和 4.1 之间的更改

请参阅迁移指南,了解可能影响应用程序的重要更改。 您可以在 wiki 上找到 2.1 之前所有版本的迁移指南。spring-doc.cn

新组件

版本 4.1 添加了许多新组件。spring-doc.cn

Promise<?> 网关

消息传递网关方法现在支持 Reactor 返回类型。 请参阅 异步网关Promisespring-doc.cn

WebSocket 支持

该模块现已推出。 它完全基于 Spring WebSocket 和 Spring Messaging 模块,并提供了一个 . 有关更多信息,请参阅 WebSockets 支持WebSocket<inbound-channel-adapter><outbound-channel-adapter>spring-doc.cn

Scatter-Gather 企业集成模式

我们实施了 scatter-gather 企业集成模式。 有关更多信息,请参阅 Scatter-Gatherspring-doc.cn

Routing Slip Pattern

我们添加了路由滑 EIP 模式实现。 有关更多信息,请参阅路由单spring-doc.cn

幂等接收器模式

我们通过在 XML 中添加组件或 Java 配置的 and 注释来添加幂等接收器企业集成模式实现。 有关更多信息,请参阅 Idempotent Receiver Enterprise Integration PatternJavadoc<idempotent-receiver>IdempotentReceiverInterceptorIdempotentReceiverspring-doc.cn

福音JsonObjectMapper

我们为 JSON 转换器添加了 Boon。 有关更多信息,请参阅 TransformerJsonObjectMapperspring-doc.cn

Redis 队列网关

我们添加了 and 组件。 请参阅 Redis 队列入站网关Redis 队列出站网关<redis-queue-inbound-gateway><redis-queue-outbound-gateway>spring-doc.cn

PollSkipAdvice

我们添加了 ,您可以在 中使用它来确定是否应由您使用 实施的某些条件来抑制(跳过)当前轮询。 有关更多信息,请参阅 轮询器PollSkipAdvice<advice-chain><poller>PollSkipStrategyspring-doc.cn

一般更改

本节介绍从版本 4.0 到版本 4.1 的一般更改。spring-doc.cn

AMQP 入站终端节点,通道

使用消息侦听器容器的元素(入站终端节点和通道)现在支持该属性。 有关更多信息,请参阅 AMQP 支持missing-queues-fatalspring-doc.cn

AMQP 出站终端节点

AMQP 出站终端节点支持名为 (default: ) 的新属性。 When 时,在第一条消息到达之前,不会建立与代理的连接(假设没有入站终端节点,这些终端节点总是在启动期间尝试建立连接)。 设置为 时,将在应用程序启动期间尝试建立连接。 有关更多信息,请参阅 AMQP 支持lazy-connecttruetruefalsespring-doc.cn

简单消息存储

在调用 时,不再复制组。 有关更多信息,请参见 xref:message-store.adoc#sms-cautionSimpleMessageStoregetMessageGroup()spring-doc.cn

Web 服务出站网关:encode-uri

现在提供了一个属性,允许在发送请求之前禁用 URI 对象的编码。<ws:outbound-gateway/>encode-urispring-doc.cn

Http 入站通道适配器和状态代码

现在可以配置 以覆盖默认状态。 有关更多信息,请参阅 HTTP 命名空间支持<http:inbound-channel-adapter>status-code-expression200 OKspring-doc.cn

MQTT 适配器更改

您现在可以将 MQTT 通道适配器配置为连接到多个服务器,例如,支持高可用性 (HA)。 有关更多信息,请参阅 MQTT 支持spring-doc.cn

MQTT 消息驱动的通道适配器现在支持为每个订阅指定 QoS 设置。 有关更多信息,请参见入站 (消息驱动) 通道适配器spring-doc.cn

MQTT 出站通道适配器现在支持异步发送,从而避免在确认交付之前阻塞。 有关更多信息,请参阅 Outbound Channel Adapterspring-doc.cn

现在可以在运行时以编程方式订阅和取消订阅主题。 有关更多信息,请参见入站 (消息驱动) 通道适配器spring-doc.cn

FTP 和 SFTP 适配器更改

FTP 和 SFTP 出站通道适配器现在支持附加到远程文件,并在远程文件已存在时执行特定操作。 远程文件模板现在也支持此功能以及 和 。 此外,远程文件模板还提供对底层客户端对象的访问,从而允许访问低级 API。rmdir()exists()spring-doc.cn

有关更多信息,请参阅 FTP/FTPS 适配器SFTP 适配器spring-doc.cn

Splitter 和 Iterator

Splitter组件现在支持用于生成输出消息的 As Result对象。 有关更多信息,请参阅 SplitterIteratorspring-doc.cn

聚合

Aggregatorinstancess 现在支持新属性 。 有关更多信息,请参阅 Aggregatorexpire-groups-upon-timeoutspring-doc.cn

内容丰富器改进

我们添加了一个属性,如果返回,则评估并返回该属性。 您可以将其添加到 和 中。 有关更多信息,请参阅 内容扩充器null-result-expression<enricher>null<header><property>spring-doc.cn

我们添加了一个属性,该属性用于处理 . 这样,您就可以返回用于扩充的替代对象。 有关更多信息,请参阅 内容扩充器error-channelExceptionrequest-channelspring-doc.cn

Header Channel Registry

该元素的子元素现在可以覆盖标题通道注册表保留通道映射的默认时间。 有关更多信息,请参阅 Header Channel Registry<header-enricher/><header-channels-to-string/>spring-doc.cn

有序关机

我们对 orderly shutdown 算法进行了改进。 有关更多信息,请参见 Orderly Shutdownspring-doc.cn

管理RecipientListRouter

现在提供了多个管理操作,用于在运行时配置收件人。 这样,您现在可以从一开始就配置 without any。 有关更多信息,请参阅 RecipientListRouterManagementRecipientListRouter<recipient-list-router><recipient>spring-doc.cn

AbstractHeaderMapper:NON_STANDARD_HEADERS token

该实现现在提供了额外的令牌来映射任何用户定义的标头,默认情况下不会映射这些标头。 有关更多信息,请参阅 AMQP 消息标头AbstractHeaderMapperNON_STANDARD_HEADERSspring-doc.cn

AMQP 通道:template-channel-transacted

我们引入了 AMQP 实例的属性。 有关更多信息,请参见 AMQP 支持的消息通道template-channel-transactedMessageChannelspring-doc.cn

Syslog 适配器

默认 syslog 消息转换器现在可以选择在有效负载中保留原始消息,同时仍设置标头。 有关更多信息,请参阅 Syslog 入站通道适配器spring-doc.cn

异步网关

除了前面提到的返回类型之外,网关方法现在还可以返回 Spring Framework 4.0 中引入的 。 您还可以在网关中禁用异步处理,让下游流直接返回 . 请参阅 异步网关PromiseListenableFutureFuturespring-doc.cn

聚合商建议链

Aggregator现在 support 和 child 元素来为操作提供建议。 有关更多信息,请参阅使用 XML 配置聚合器Resequencer<expire-advice-chain/><expire-transactional/>forceCompletespring-doc.cn

出站通道适配器和脚本

现在支持子元素。 底层脚本必须具有 return type 或 return 。 请参阅 Groovy 支持脚本支持<int:outbound-channel-adapter/><script/>voidnullspring-doc.cn

Resequencer 更改

现在,默认情况下,当 resequencer 中的消息组超时(使用 或 a )时,会立即丢弃延迟到达的消息。 请参阅 Resequencergroup-timeoutMessageGroupStoreReaperspring-doc.cn

可选的 POJO 方法参数

Spring 集成现在始终如一地处理 Java 8 的类型。 请参阅配置 Service ActivatorOptionalspring-doc.cn

QueueChannelbacked Queue 类型

backed 已从 更改为更通用的 . 此更改允许使用任何外部实现(例如 Reactor 的 )。 参见 QueueChannel 配置QueueChannelQueue typeBlockingQueueQueueQueuePersistentQueuespring-doc.cn

ChannelInterceptor变化

现在支持其他 and 方法。 请参见Channel InterceptorChannelInterceptorafterSendCompletion()afterReceiveCompletion()spring-doc.cn

IMAP PEEK

从版本 4.1.1 开始,如果将 JavaMail 属性显式设置为 (where is 或 ),则行为会发生变化。 请参阅 xref:changes-4.0-4.1.adoc#x4.1-mail-peekmail.[protocol].peekfalse[protocol]imapimapsspring-doc.cn