跳到主要内容

4.0 和 4.1 之间的更改

QWen Plus 中英对照 Changes between 4.0 and 4.1

请参阅 迁移指南 以了解可能影响您应用程序的重要更改。您可以在 wiki 上找到从 2.1 版本开始所有版本的迁移指南。

新组件

版本 4.1 添加了许多新组件。

Promise<> 网关

消息网关方法现在支持 Reactor Promise 返回类型。见异步网关

WebSocket 支持

WebSocket 模块现已可用。它完全基于 Spring WebSocket 和 Spring Messaging 模块,并提供了一个 <inbound-channel-adapter> 和一个 <outbound-channel-adapter>。更多信息,请参阅 WebSockets 支持

分散-聚集 企业集成模式

我们实现了散集企业集成模式。详见 Scatter-Gather 获取更多信息。

路由 slip 模式

我们添加了路由 slip EIP 模式的实现。更多信息请参阅 Routing Slip

等幂接收者模式

我们通过在 XML 中添加 <idempotent-receiver> 组件或在 Java 配置中添加 IdempotentReceiverInterceptorIdempotentReceiver 注解来实现幂等接收器企业集成模式。详见 幂等接收器企业集成模式Javadoc 以获取更多信息。

Boon JsonObjectMapper

Boon JSON 对象映射器

我们添加了 Boon JsonObjectMapper 用于 JSON 转换器。更多信息请参见 Transformer

Redis 队列网关

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

PollSkipAdvice

我们添加了 PollSkipAdvice,你可以在 <poller><advice-chain> 中使用它,以确定是否应根据你使用 PollSkipStrategy 实现的某些条件来抑制(跳过)当前轮询。更多信息,请参见 轮询者

通用更改

本节描述了从版本 4.0 到版本 4.1 的一般性变更。

AMQP 入站端点,通道

使用消息监听器容器的元素(入站端点和通道)现在支持 missing-queues-fatal 属性。更多信息请参见 AMQP 支持

AMQP 外发端点

AMQP 外发端点支持一个新的属性叫做 lazy-connect(默认值:true)。当设置为 true 时,与代理的连接不会建立,直到第一条消息到达(假设没有入站端点,这些端点总是在启动时尝试建立连接)。当设置为 false 时,在应用程序启动期间会尝试建立连接。更多信息请参阅 AMQP 支持

SimpleMessageStore

SimpleMessageStore 在调用 getMessageGroup() 时不再复制组。参见 xref:message-store.adoc#sms-caution

欲了解更多信息。

Web Service 外向网关:encode-uri

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

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

<http:inbound-channel-adapter> 现在可以配置 status-code-expression 来覆盖默认的 200 OK 状态。更多信息请参见 HTTP 命名空间支持

MQTT 适配器更改

你现在可以配置 MQTT 通道适配器以连接到多个服务器——例如,以支持高可用性 (HA)。更多信息请参见 MQTT 支持

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

MQTT 外发通道适配器现在支持异步发送,避免了阻塞直到交付确认。更多信息,请参见 外发通道适配器

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

FTP 和 SFTP 适配器更改

FTP 和 SFTP 外发通道适配器现在支持追加到远程文件,并在远程文件已存在时采取特定操作。远程文件模板现在也支持此功能,以及 rmdir()exists()。此外,远程文件模板提供了对底层客户端对象的访问,从而可以使用低级 API。

详见 FTP/FTPS 适配器SFTP 适配器 获取更多信息。

分割器和迭代器

Splitter 组件现在支持将 Iterator 作为结果对象来生成输出消息。更多信息请参见 Splitter

聚合器

Aggregator 实例现在支持一个新属性 expire-groups-upon-timeout。更多信息请参阅 Aggregator

内容丰富器改进

我们添加了一个 null-result-expression 属性,当 <enricher> 返回 null 时,会评估并返回该属性。你可以在 <header><property> 中添加它。更多信息请参见 内容充实

我们添加了一个 error-channel 属性,用于在 request-channel 的下游发生 Exception 时处理错误流。这使您可以返回一个替代对象以用于丰富。更多信息,请参见 内容丰富器

头部通道注册表

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

有序关机

我们改进了有序关闭算法。更多信息请参见 有序关闭

RecipientListRouter 的管理

RecipientListRouter 现在提供了多个管理操作,可以在运行时配置接收者。通过这些操作,你现在可以从一开始就配置 <recipient-list-router> 而无需添加任何 <recipient>。更多信息,请参见 RecipientListRouterManagement

AbstractHeaderMapper: NON_STANDARD_HEADERS 标记

AbstractHeaderMapper 实现现在提供了额外的 NON_STANDARD_HEADERS 标记来映射任何用户定义的标头,这些标头默认情况下不会被映射。有关更多信息,请参阅 AMQP 消息标头

AMQP 通道:template-channel-transacted

在这一部分中,我们讨论了 AMQP 通道的 template-channel-transacted 特性。请注意,专有名词如 AMQP 保持原样。

我们为 AMQP MessageChannel 实例引入了 template-channel-transacted 属性。更多信息请参见 AMQP 支持的消息通道

Syslog 适配器

默认的 syslog 消息转换器现在有一个选项,可以在设置头信息的同时保留有效负载中的原始消息。更多信息,请参见 Syslog 入站通道适配器

异步网关

除了前面提到的 Promise 返回类型之前提到,网关方法现在还可以返回一个 ListenableFuture,这是在 Spring Framework 4.0 中引入的。你也可以禁用网关中的异步处理,让下游流程直接返回一个 Future。详情请参阅异步网关

聚合器建议链

AggregatorResequencer 现在支持 <expire-advice-chain/><expire-transactional/> 子元素来建议 forceComplete 操作。更多信息,请参见 使用 XML 配置 Aggregator

外发通道适配器和脚本

<int:outbound-channel-adapter/> 现在支持 <script/> 子元素。底层脚本必须具有 void 返回类型或返回 null。请参阅 Groovy 支持脚本支持

重新排序器更改

当重新排序器中的消息组超时(使用 group-timeoutMessageGroupStoreReaper ),迟到的消息现在默认情况下会立即被丢弃。请参阅 重新排序器

可选的POJO方法参数

Spring Integration 现在一致地处理 Java 8 的 Optional 类型。参见 配置服务激活器

QueueChannel 支持的队列类型

QueueChannel 支持的 Queue type 已从 BlockingQueue 更改为更通用的 Queue。此更改允许使用任何外部 Queue 实现(例如,Reactor 的 PersistentQueue)。请参阅 QueueChannel 配置

ChannelInterceptor 更改

ChannelInterceptor 现在支持额外的 afterSendCompletion()afterReceiveCompletion() 方法。详见 Channel Interceptors

IMAP PEEK

在 IMAP 协议中,PEEK 用于查看邮件内容而不将其标记为已读。

自从 4.1.1 版本起,如果你明确地将 mail.[protocol].peek JavaMail 属性设置为 false (其中 [protocol]imapimaps),行为上会有变化。请参阅 xref:changes-4.0-4.1.adoc#x4.1-mail-peek

.