6.4 和 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 现在区分 handler、message-source 和 message-producer 值,用于 spring.integration.type 低基数标签。有关更多信息,请参阅Micrometer 观察。
可选的 Paho MQTT 依赖项
spring-integration-mqtt 的 org.eclipse.paho:org.eclipse.paho.client.mqttv3 依赖项现在也是可选的,就像 org.eclipse.paho:org.eclipse.paho.mqttv5.client 始终是可选的一样。有关更多信息,请参阅MQTT 支持。
Apache Kafka 支持更改
KafkaMessageSource 和 KafkaMessageDrivenChannelAdapter 现在默认生成 MessageHeaders.ID 和 MessageHeaders.TIMESTAMP 标头,就像 Spring Integration 通道适配器的其余部分一样。通过注入具有默认设置的 MessagingMessageConverter 可以恢复到以前的行为。有关更多信息,请参阅Apache Kafka 支持。
最近文件过滤器支持
引入了 AbstractRecentFileListFilter 策略,以仅接受根据提供的 age 不够旧的文件。提供了相应的实现:RecentFileListFilter、FtpRecentFileListFilter、SftpRecentFileListFilter 和 SmbRecentFileListFilter。有关更多信息,请参阅读取文件。
FileExistsMode 表达式支持
远程文件网关 (AbstractRemoteFileOutboundGateway) 现在通过 SpEL 表达式支持在运行时动态解析 FileExistsMode。有关更多信息,请参阅远程文件网关。
Hazelcast 模块废弃
由于 Hazelcast CP 子系统迁移到企业版,HazelcastLockRegistry 和 Hazelcast LeaderInitiator 已废弃。有关更多信息,请参阅Hazelcast 支持。
JDBC 支持
如果提供的输入是 Map,BeanPropertySqlParameterSourceFactory 现在内部使用 MapSqlParameterSource。此外,JdbcMessageHandler 公开了一个 usePayloadAsParameterSource 标志,以允许仅对消息负载使用参数源。这就是前面提到的 MapSqlParameterSource 对于具有映射负载的请求消息非常有用之处。有关更多信息,请参阅JDBC 支持。
Redis Stream 支持
ReactiveRedisStreamMessageHandler 现在公开了一个 Function<Message<?>, RedisStreamCommands.XAddOptions>,以便通过方便的 RedisStreamCommands.XAddOptions API 提供额外的 XADD 选项。有关更多信息,请参阅Redis 支持。