6.3 到 6.4 之间的变化
新组件
BaseMessageBuilder
类已从 MessageBuilder
中提取出来,以简化自定义构建器的实现,其中大部分逻辑应与 MessageBuilder
的逻辑相同。
有关更多信息,请参阅 MessageBuilder
。
新的控制总线交互模型在 ControlBusCommandRegistry
中实现。
建议使用新的 ControlBusFactoryBean
类,而不是已弃用的 ExpressionControlBusFactoryBean
。
有关更多信息,请参阅 控制总线。
此外,还引入了 ControlBusController
(以及 @EnableControlBusController
),用于管理上述 ControlBusCommandRegistry
公开的命令。
有关更多信息,请参阅 HTTP 支持。
SpEL 评估基础设施现在支持 IndexAccessor
的配置。
此外,还提供了一个开箱即用的 JsonIndexAccessor
。
有关更多信息,请参阅 SpEL 支持。
远程文件适配器变化
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
在运行时添加 MqttPahoMessageDrivenChannelAdapter
和 Mqttv5PahoMessageDrivenChannelAdapter
的多个实例。
此外,还引入了 MqttMessageNotDeliveredEvent
事件,以便在操作回调对传递失败作出反应时发出。
有关更多信息,请参阅 MQTT 支持。
Zip 支持变化
ZipTransformer
现在公开了一个 fileNameGenerator
属性,用于自定义目标 zip 文件 (和可选的 zip 条目) 名称的生成。
有关更多信息,请参阅 Zip 支持。
脚本变化
Python 脚本评估现在已迁移到 GraalVM Polyglot。 有关更多信息,请参阅 脚本支持。
邮件变化
AbstractMailReceiver
公开了一个选项,用于禁用将 Flags.Flag.FLAGGED
设置为接收到的邮件的后备标志。
有关更多信息,请参阅 邮件支持。