|
如需使用最新稳定版本,请使用 Spring Integration 7.0.4! |
4.0 与 4.1 之间的变更
新组件
版本4.1添加了许多新组件。
Promise<?> 网关
消息网关方法现在支持 Reactor Promise 返回类型。
参见 异步网关。
WebSocket 支持
WebSocket 模块现已发布。
它完全基于 Spring WebSocket 和 Spring Messaging 模块,并提供了 <inbound-channel-adapter> 和 <outbound-channel-adapter>。
有关更多信息,请参阅 WebSockets 支持。
散列-汇聚企业集成模式
我们实现了散列-收集企业集成模式。 有关更多信息,请参阅散列-收集。
路由单模式
我们已添加路由单 EIP 模式实现。 有关更多信息,请参见 路由单。
幂等接收器模式
我们通过添加 <idempotent-receiver> 组件(在 XML 中)或 IdempotentReceiverInterceptor 和 IdempotentReceiver 注解(用于 Java 配置),实现了幂等接收器企业集成模式。有关更多信息,请参阅 幂等接收器企业集成模式 以及 Javadoc。
博恩JsonObjectMapper
我们为 JSON 转换器添加了 Boon JsonObjectMapper。
有关更多信息,请参阅 Transformer。
Redis 队列网关
我们添加了 <redis-queue-inbound-gateway> 和 <redis-queue-outbound-gateway> 组件。
请参见 Redis 队列入站网关 和 Redis 队列出站网关。
PollSkipAdvice
我们添加了 PollSkipAdvice,您可以在 <poller> 的 <advice-chain> 中使用它,以根据您通过 PollSkipStrategy 实现的某些条件来决定是否应抑制(跳过)当前轮询。
有关更多信息,请参阅 Poller。
常规变更
本节描述了从 4.0 版本到 4.1 版本的一般变更。
AMQP 入站端点,通道
使用消息监听容器(入站端点和通道)的元素现在支持 missing-queues-fatal 属性。
有关更多信息,请参阅 AMQP 支持。
AMQP 出站端点
AMQP 出站端点支持一个名为 lazy-connect 的新属性(默认值:true)。
当设置为 true 时,连接不会在启动时建立,直到第一条消息到达(假设没有入站端点,因为它们总是在启动期间尝试建立连接)。
当设置为 false 时,将在应用程序启动期间尝试建立连接。
有关更多信息,请参阅 AMQP 支持。
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。
有关更多信息,请参阅 聚合器。
内容增强器改进
我们添加了一个 null-result-expression 属性,当 <enricher> 返回 null 时,该属性会被求值并返回。
您可以在 <header> 和 <property> 中添加它。
有关更多信息,请参阅 内容增强器。
我们添加了一个error-channel属性,用于在request-channel下游发生Exception错误时处理错误流程。
这允许您返回一个替代对象用于数据丰富。
有关更多信息,请参阅内容增强器。
头部通道注册表
<header-enricher/>元素的<header-channels-to-string/>子元素现在可以覆盖头通道注册表保留通道映射的默认时间。
有关更多信息,请参阅头通道注册表。
有序关闭
我们改进了有序关闭算法。 有关更多信息,请参阅 有序关闭。
管理RecipientListRouter
RecipientListRouter 现在提供了多种管理操作,以便在运行时配置收件人。
通过这种方式,您可以从一开始就无需任何 <recipient> 即可配置 <recipient-list-router>。
有关更多信息,请参阅 RecipientListRouterManagement。
AbstractHeaderMapper: 非标准头 token
The AbstractHeaderMapper 实现现在提供了额外的 NON_STANDARD_HEADERS Tokens,用于映射任何默认未映射的用户定义头信息。
有关更多信息,请参阅 AMQP 消息头。
AMQP 通道:template-channel-transacted
我们为 AMQP MessageChannel 实例引入了 template-channel-transacted 属性。
有关更多信息,请参阅 基于 AMQP 的消息通道。
Syslog 适配器
默认的 syslog 消息转换器现在提供了一个选项,可以在保留原始消息作为负载的同时设置头部信息。 有关更多信息,请参阅 Syslog 入站通道适配器。
异步网关
除了前面提到的 Promise 返回类型外,网关方法现在还可以返回 ListenableFuture,该功能在 Spring Framework 4.0 中引入。
您还可以禁用网关中的异步处理,让下游流程直接返回 Future。
请参阅 异步网关。
聚合器建议链
Aggregator 和 Resequencer 现在支持 <expire-advice-chain/> 和 <expire-transactional/> 子元素,用于建议 forceComplete 操作。
有关更多信息,请参阅 使用 XML 配置聚合器。
出站通道适配器和脚本
The <int:outbound-channel-adapter/> now supports the <script/> child element.
The underlying script must have a void return type or return null.
See Groovy support and Scripting Support.
重排序器变更
当重排序器中的消息组超时(使用 group-timeout 或 MessageGroupStoreReaper)时,迟到的消息现在默认会立即被丢弃。
请参阅 重排序器。
可选的 POJO 方法参数
Spring Integration 现在一致地处理 Java 8 的 Optional 类型。
请参阅 配置服务激活器。
QueueChannel后端队列类型
The QueueChannel backed Queue type has been changed from BlockingQueue to the more generic Queue.
This change allows the use of any external Queue implementation (for example, Reactor's PersistentQueue).
See QueueChannel Configuration.
ChannelInterceptor变更
The ChannelInterceptor now supports additional afterSendCompletion() and afterReceiveCompletion() methods.
See Channel Interceptors.