最新动态?

对于已经熟悉 Spring Integration 的用户,本章提供了版本 6.4 新特性的简要概述。

如果您对早期版本中引入的变更和特性感兴趣,请参见变更历史

Spring Integration 6.4 中有什么新变化?

如果您对更多细节感兴趣,请查看在 6.4 开发过程中解决的 Issue Tracker 票据。

总的来说,项目已迁移到最新的依赖版本。

新组件

已从 MessageBuilder 中提取 BaseMessageBuilder 类,以简化自定义构建器实现,其中大部分逻辑应与 MessageBuilder 相同。详情请参阅MessageBuilder

新的控制总线交互模型在 ControlBusCommandRegistry 中实现。建议使用新的 ControlBusFactoryBean 类,而不是已弃用的 ExpressionControlBusFactoryBean。详情请参阅控制总线

此外,还引入了 ControlBusController(与 @EnableControlBusController 一起),用于管理由上述 ControlBusCommandRegistry 公开的命令。详情请参阅HTTP 支持

SpEL 评估基础设施现在支持 IndexAccessor 的配置。此外,还提供了一个开箱即用的 JsonIndexAccessor。详情请参阅SpEL 支持

一般变更

Java DSL SourcePollingChannelAdapterSpec 现在可以使用自定义 TaskScheduler 进行配置

远程文件适配器变更

AbstractRemoteFileStreamingMessageSource 现在提供了一个方便的 clearFetchedCache() API,用于从缓存中移除未处理的远程文件引用。引用保留在缓存中是因为轮询配置不允许在一个周期内处理所有抓取的文件,并且目标 SessionFactory 可能会在轮询周期之间发生变化,例如通过 RotatingServerAdvice

JDBC 变更

在 Spring Framework 6.2 中,LobHandler(及相关 API)已被弃用并计划移除。JdbcMessageStore(及类似类)中的相关选项也已弃用。序列化消息的字节数组处理已完全委托给 JDBC 驱动程序。

LockRepository.delete() 方法返回移除分布式锁所有权的结果。如果锁的所有权已过期,JdbcLockRegistry.JdbcLock.unlock() 方法将抛出 ConcurrentModificationException。详情请参阅JDBC 支持

ZeroMQ 变更

出站组件 ZeroMqMessageHandler(及相关 API)现在可以绑定 TCP 端口,而不是连接到给定的 URL。详情请参阅ZeroMQ 支持

Redis 变更

如果锁的所有权已过期,RedisLockRegistry.RedisLock.unlock() 方法将抛出 ConcurrentModificationException,而不是 IllegalStateException。添加 RedisLockRegistry.setRenewalTaskScheduler() 用于定期续约锁。详情请参阅Redis 支持

Groovy 变更

出于移除计划,ControlBusFactoryBean(及相应的 <int-groovy:control-bus> XML 标签)已被弃用,转而使用基于 ControlBusCommandRegistry 中实现的新模型的新引入的 ControlBusFactoryBean。详情请参阅控制总线

SFTP 支持变更

DefaultSftpSessionFactory 现在公开了一个 Consumer<SshClient> 配置器属性,用于进一步定制内部 SshClient。详情请参阅SFTP Session Factory

MQTT 支持变更

现在可以通过 IntegrationFlowContext 中相应的 ClientManager 在运行时添加 MqttPahoMessageDrivenChannelAdapterMqttv5PahoMessageDrivenChannelAdapter 的多个实例。此外,还引入了 MqttMessageNotDeliveredEvent 事件,用于在动作回调对发送失败做出反应时发出。详情请参阅MQTT 支持

Zip 支持变更

ZipTransformer 现在公开了一个 fileNameGenerator 属性,用于自定义目标 zip 文件(和可选的 zip 条目)名称的生成。详情请参阅Zip 支持

脚本变更

Python 脚本评估现在已迁移到 GraalVM Polyglot。详情请参阅脚本支持

邮件变更

AbstractMailReceiver 公开了一个选项,可以禁用将 Flags.Flag.FLAGGED 设置到接收到的消息中作为后备标志。详情请参阅邮件支持