6.3 到 6.4 之间的变化

新组件

BaseMessageBuilder 类已从 MessageBuilder 中提取出来,以简化自定义构建器的实现,其中大部分逻辑应与 MessageBuilder 的逻辑相同。 有关更多信息,请参阅 MessageBuilder

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

此外,还引入了 ControlBusController (以及 @EnableControlBusController),用于管理上述 ControlBusCommandRegistry 公开的命令。 有关更多信息,请参阅 HTTP 支持

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

一般变化

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

远程文件适配器变化

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

JDBC 变化

LobHandler (以及相应的 API) 已在 Spring Framework 6.2 中弃用,以便删除。 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 会话工厂

MQTT 支持变化

现在可以通过 IntegrationFlowContext 使用相应的 ClientManager 在运行时添加 MqttPahoMessageDrivenChannelAdapterMqttv5PahoMessageDrivenChannelAdapter 的多个实例。 此外,还引入了 MqttMessageNotDeliveredEvent 事件,以便在操作回调对传递失败作出反应时发出。 有关更多信息,请参阅 MQTT 支持

Zip 支持变化

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

脚本变化

Python 脚本评估现在已迁移到 GraalVM Polyglot。 有关更多信息,请参阅 脚本支持

邮件变化

AbstractMailReceiver 公开了一个选项,用于禁用将 Flags.Flag.FLAGGED 设置为接收到的邮件的后备标志。 有关更多信息,请参阅 邮件支持