|
如需使用最新稳定版本,请使用 Spring Integration 7.0.4! |
什么是新内容?
对于已经熟悉 Spring Integration 的读者,本章简要介绍了 6.4 版本的新特性。
如果您对早期版本中引入的更改和功能感兴趣,请参阅变更历史记录。
Spring Integration 6.4 有哪些新功能?
如果您想了解更多详细信息,请参阅作为 6.4 开发过程一部分而解决的 Issue Tracker 工单。
通常,该项目已迁移至最新的依赖版本。
新组件
一个 BaseMessageBuilder 类已从 MessageBuilder 中提取,以简化自定义构建器实现,其中大部分逻辑应与 MessageBuilder 的实现相同。
有关更多信息,请参阅 MessageBuilder。
新的控制总线交互模型已在 ControlBusCommandRegistry 中实现。
建议使用新的 ControlBusFactoryBean 类替代已弃用的 ExpressionControlBusFactoryBean。
有关更多信息,请参阅 控制总线。
此外,ControlBusController(与 @EnableControlBusController 一起)被引入用于由上述 ControlBusCommandRegistry 管理暴露的命令。
有关更多信息,请参见 HTTP 支持。
SpEL 评估基础设施现在支持对 IndexAccessor 的配置。
此外,还提供了开箱即用的 JsonIndexAccessor。
有关更多信息,请参阅 SpEL 支持。
远程文件适配器更改
The AbstractRemoteFileStreamingMessageSource 现在提供了一个便捷的 clearFetchedCache() API,用于从缓存中移除未处理的远程文件的引用。
这些引用保留在缓存中,因为轮询配置不允许在一个周期内处理所有获取的文件,并且在轮询周期之间目标 SessionFactory 可能会发生变化,例如通过 RotatingServerAdvice。
JDBC 更改
The LobHandler(及其相应的 API)已在 Spring Framework 6.2 中被弃用,即将移除。
JdbcMessageStore(以及类似选项)上的相应选项也已被弃用。
序列化消息的字节数组处理已完全委托给 JDBC 驱动程序。
The LockRepository.delete() 方法返回移除分布式锁所有权的结果。
如果锁的所有权已过期,则 JdbcLockRegistry.JdbcLock.unlock() 方法会抛出 ConcurrentModificationException。
有关更多信息,请参阅 JDBC 支持。
ZeroMQ 变更
出站组件 ZeroMqMessageHandler(及其相应的 API)现在可以绑定 TCP 端口,而不是连接到指定的 URL。
有关更多信息,请参见 ZeroMQ 支持。
Redis 变更
如果锁的拥有权已过期,RedisLockRegistry.RedisLock.unlock() 方法将抛出 ConcurrentModificationException,而不是抛出 IllegalStateException。
为周期性锁续期添加了 RedisLockRegistry.setRenewalTaskScheduler()。
有关更多信息,请参阅 Redis 支持。
Groovy 变更
The ControlBusFactoryBean(及其对应的<int-groovy:control-bus> XML 标签)已被弃用(用于移除),取而代之的是基于在ControlBusCommandRegistry中实现的新模型而新引入的ControlBusFactoryBean。
有关更多信息,请参阅控制总线。
SFTP 支持变更
The DefaultSftpSessionFactory 现在暴露了一个 Consumer<SshClient> 配置器属性,用于进一步自定义内部的 SshClient。
有关更多信息,请参阅 SFTP Session Factory。
MQTT 支持变更
现在可以在运行时使用对应的ClientManager到IntegrationFlowContext添加多个MqttPahoMessageDrivenChannelAdapter和Mqttv5PahoMessageDrivenChannelAdapter实例
此外,还引入了一个MqttMessageNotDeliveredEvent事件,当操作回调响应交付失败时触发该事件。
有关更多信息,请参阅MQTT 支持。
Zip 支持变更
The ZipTransformer 现在公开了一个 fileNameGenerator 属性,用于自定义目标 zip 文件(以及可选的 zip 条目)的名称生成。
有关更多信息,请参阅 Zip 支持。
脚本更改
The Python scripts evaluation is now migrated to the GraalVM Polyglot. See Scripting Support for more information.
邮件变更
The AbstractMailReceiver 提供了一个选项,用于禁用将 Flags.Flag.FLAGGED 作为回退标志设置到接收的消息中。
有关更多信息,请参阅 邮件支持。