6.3 和 6.4 之间的更改
新组件
从 MessageBuilder
中提取了一个 BaseMessageBuilder
类,以简化自定义构建器的实现,其中大部分逻辑应该与 MessageBuilder
保持一致。更多信息请参见 MessageBuilder。
新的 Control Bus 交互模型在 ControlBusCommandRegistry
中实现。建议使用新的 ControlBusFactoryBean
类,而不是已弃用的 ExpressionControlBusFactoryBean
。更多信息,请参见 Control Bus。
此外,引入了一个 ControlBusController
(与 @EnableControlBusController
一起)用于通过上述的 ControlBusCommandRegistry
管理暴露的命令。有关更多信息,请参阅 HTTP 支持。
SpEL 评估基础设施现在支持 IndexAccessor
的配置。此外,还提供了一个开箱即用的 JsonIndexAccessor
。更多信息,请参见 SpEL 支持。
通用更改
现在可以使用自定义的 TaskScheduler
来配置 Java DSL SourcePollingChannelAdapterSpec
远程文件适配器更改
AbstractRemoteFileStreamingMessageSource
现在有一个便捷的 clearFetchedCache()
API,用于从缓存中移除未处理的远程文件的引用。这些引用会留在缓存中,因为轮询配置不允许在一个周期内处理所有已获取的文件,并且目标 SessionFactory
可能在轮询周期之间发生变化,例如通过 RotatingServerAdvice
。
JDBC 更改
LobHandler
(及其相应的 API)已计划在 Spring Framework 6.2
中移除。JdbcMessageStore
(以及类似的)上的相应选项也已被弃用。序列化消息的字节数组处理已完全交给 JDBC 驱动程序处理。
LockRepository.delete()
方法返回移除分布式锁所有权的结果。并且 JdbcLockRegistry.JdbcLock.unlock()
方法如果锁的所有权已过期,则会抛出 ConcurrentModificationException
。更多信息,请参见 JDBC 支持。
ZeroMQ 更改
outbound 组件 ZeroMqMessageHandler
(以及相应的 API)现在可以绑定一个 TCP 端口,而不是连接到给定的 URL。更多信息请参阅 ZeroMQ 支持。
Redis 更改
与其抛出 IllegalStateException
,RedisLockRegistry.RedisLock.unlock()
方法会在锁的所有权过期时抛出 ConcurrentModificationException
。添加一个 RedisLockRegistry.setRenewalTaskScheduler()
以定期续订锁。更多信息请参见 Redis 支持。
Groovy 更改
ControlBusFactoryBean
(以及相应的 <int-groovy:control-bus>
XML 标签)已弃用(待移除),取而代之的是基于在 ControlBusCommandRegistry
中实现的新模型的新 ControlBusFactoryBean
。更多信息请参见 Control Bus。
SFTP 支持变更
DefaultSftpSessionFactory
现在暴露了一个 Consumer<SshClient>
配置属性,以进一步自定义内部的 SshClient
。更多信息请参见 SFTP Session Factory。
MQTT 支持变更
现在可以通过 IntegrationFlowContext
使用相应的 ClientManager
在运行时添加多个 MqttPahoMessageDrivenChannelAdapter
和 Mqttv5PahoMessageDrivenChannelAdapter
实例。另外,引入了一个 MqttMessageNotDeliveredEvent
事件,在操作回调对交付失败作出反应时发出。更多信息请参见 MQTT 支持。
Zip 支持更改
ZipTransformer
现在暴露了一个 fileNameGenerator
属性,用于自定义目标 zip 文件(和可选的 zip 条目)名称生成。更多信息请参见 Zip 支持。
脚本更改
Python 脚本评估现已迁移到 GraalVM Polyglot。更多信息请参见 脚本支持。
邮件更改
AbstractMailReceiver
暴露了一个选项,可以禁用将 Flags.Flag.FLAGGED
设置为接收消息的回退标志。更多信息,请参见 邮件支持。