跳到主要内容
版本:7.0.2

6.4 与 6.5 之间的变更

DeepSeek V3 中英对照 Changes between 6.4 and 6.5

通用变更

之前弃用的 org.springframework.util.concurrent.ListenableFuture 用法已被移除,现在推荐使用 CompletableFuture

之前已弃用的基于SpEL的控制总线组件已被移除,转而支持围绕 ControlBusCommandRegistry 的功能。<control-bus use-registry=""> 属性现已弃用,且无替代方案,因为仅提供 ControlBusCommandRegistry 功能。Java DSL 中的 controlBusOnRegistry() 操作符已弃用,转而使用恢复的 controlBus(),该操作符现在完全基于 ControlBusCommandRegistry。更多信息请参阅控制总线

AbstractCorrelatingMessageHandler 不会因为 MessageGroupProcessor 的结果是有效载荷集合而抛出 IllegalArgumentException。相反,此类集合会被包装成单个回复消息。更多信息请参阅聚合器

当尝试向未运行的应用程序发送消息时,AbstractMessageChannel bean 现在会抛出特殊的 MessageDispatchingException

通常,尝试从 afterPropertiesSet()@PostConstruct 或 bean 定义方法中生成消息是一种设计错误。对于这类逻辑,更推荐使用 SmartLifecycle.start() 方法,或者最好通过入站通道适配器来实现。

Java DSL 的 gateway() 操作符现已完全支持 async(true) 行为。更多信息请参阅消息网关

LockRequestHandlerAdvice

引入了新的 LockRequestHandlerAdvice,用于基于请求消息为消息处理器调用保持键的锁。更多信息请参阅为端点添加行为

用于关联处理程序的 discardIndividuallyOnExpiry 选项

现在,聚合器和重排序器可以通过将 discardIndividuallyOnExpiry 设置为 false,将整个过期的组作为单个消息丢弃。更多信息请参见 ReleaseStrategy

MessageStore 中的 LockRegistry

AbstractMessageGroupStore 现在可以配置一个 LockRegistry,以原子方式执行一系列持久化操作。更多信息请参阅使用 LockRegistry

Micrometer 观测变更

SourcePollingChannelAdapter 端点现在会为接收到的消息启动 CONSUMER 类型的观测。MessageReceiverContext 现在为 spring.integration.type 低基数标签区分了 handlermessage-sourcemessage-producer 值。更多信息请参阅 Micrometer 观测

可选的 Paho MQTT 依赖项

spring-integration-mqttorg.eclipse.paho:org.eclipse.paho.client.mqttv3 依赖项现在也变为可选,正如 org.eclipse.paho:org.eclipse.paho.mqttv5.client 一直以来那样。更多信息请参阅 MQTT 支持

Apache Kafka 支持变更

KafkaMessageSourceKafkaMessageDrivenChannelAdapter 现在默认会生成 MessageHeaders.IDMessageHeaders.TIMESTAMP 头部,这与 Spring Integration 的其他通道适配器保持一致。如需恢复之前的行为,可通过注入采用默认设置的 MessagingMessageConverter 来实现。更多信息请参阅 Apache Kafka 支持

近期文件过滤器支持

AbstractRecentFileListFilter 策略的引入是为了仅接受那些根据提供的 age 参数判断为“不够旧”的文件。提供了相应的实现:RecentFileListFilterFtpRecentFileListFilterSftpRecentFileListFilterSmbRecentFileListFilter。更多信息请参阅读取文件

FileExistsMode 表达式支持

远程文件网关(AbstractRemoteFileOutboundGateway)现在支持在运行时通过 SpEL 表达式动态解析 FileExistsMode。更多信息请参阅远程文件网关

Hazelcast 模块弃用说明

HazelcastLockRegistry 和 Hazelcast LeaderInitiator 由于 Hazelcast CP 子系统迁移至企业版已被弃用。更多信息请参阅 Hazelcast 支持

JDBC 支持

BeanPropertySqlParameterSourceFactory 现在内部使用 MapSqlParameterSource 来处理提供的输入是 Map 的情况。同时,JdbcMessageHandler 公开了一个 usePayloadAsParameterSource 标志,允许仅针对消息负载使用参数源。这就是提到的 MapSqlParameterSource 对于负载为 map 的请求消息变得有用的地方。更多信息请参阅 JDBC 支持

Redis Stream 支持

ReactiveRedisStreamMessageHandler 现在公开了一个 Function<Message<?>, RedisStreamCommands.XAddOptions> 函数,用于通过便捷的 RedisStreamCommands.XAddOptions API 提供额外的 XADD 选项。更多信息请参阅 Redis 支持