跳到主要内容

5.5 和 6.0 之间的更改

QWen Plus 中英对照 Changes between 5.5 and 6.0

新组件

已添加 Groovy DSL 实现,用于集成流定义。更多信息,请参阅 Groovy DSL

MQTT 客户端管理器

添加了一个新的 MQTT ClientManager,以支持在不同的通道适配器之间复用 MQTT 连接。更多信息,请参阅 共享 MQTT 客户端支持

GraphQL 支持

已经添加了对 GraphQL 的支持。更多信息请参见 GraphQL 支持

Apache Camel 支持

已引入对 Apache Camel 路由的支持。更多信息请参见 Apache Camel 支持

Hazelcast 支持

Hazelcast Spring 集成扩展项目已迁移到 spring-integration-hazelcast 模块。更多信息,请参见 Hazelcast 支持

SMB 支持

已从 Spring Integration Extensions 项目添加了 SMB 支持。Java DSL(见 org.springframework.integration.smb.dsl.Smb 工厂)也已添加到此模块中。引入了 SmbStreamingMessageSourceSmbOutboundGateway 实现。更多信息,请参阅 SMB 支持

PostgreSQL 推送通知

PostgresSubscribableChannel 允许在新的消息添加到 JdbcChannelMessageStore 时,通过 PostgresChannelMessageTableSubscriber 接收推送通知。

更多信息请参见 PostgreSQL:接收推送通知

RabbitMQ Stream 队列支持

AMQP 模块已增强,以提供对使用 RabbitMQ Stream 队列的入站和出站通道适配器的支持。有关更多信息,请参阅 RabbitMQ Stream 队列支持

Apache MINA SFTP

SFTP 模块已从过时的 JCraft JSch 库完全改用 Apache MINA 项目中更强大和现代的 org.apache.sshd:sshd-sftp 模块。

有关更多信息,请参阅 SFTP 适配器

Micrometer 观测

使用 Micrometer 为定时器和跟踪启用观察现在是被支持的。更多信息请参见 Micrometer 观察

GraalVM 多语言支持

脚本模块现在提供了一个基于 GraalVM 多语言支持的 PolyglotScriptExecutor 实现。JavaScript 支持现在基于此执行器,因为它的 JSR223 实现已经被 Java 自身移除。更多信息请参见脚本支持

Apache Cassandra 支持

Apache Cassandra Spring 集成扩展项目已迁移到 spring-integration-cassandra 模块。更多信息,请参见 Apache Cassandra 支持

Kotlin 协程

Kotlin 协程支持已引入到框架中。

更多信息请参见 Kotlin 协程

本机图像

提供了创建 GraalVM 本地镜像的支持。更多信息请参见 本地镜像支持

通用更改

消息注解现在是 @Repeatable,相同的类型可以在同一个服务方法上声明多次。消息注解不再需要一个 poller 属性作为 @Poller 的数组。

更多信息请参见 注解支持

为了方便起见,基于 RecipientListRouter 的 Scatter-Gather 的 XML 和 Java DSL 现在设置为 applySequence = true,这样 gatherer 部分可以依赖默认的相关策略。

更多信息请参见 Scatter-Gather

AbstractMappingMessageRouter 进行了另一项便捷的行为更改。现在,设置 defaultOutputChannel 也会将 channelKeyFallback 属性重置为 false,因此不会尝试从其键解析通道,而是逻辑会立即回退到将消息发送到 defaultOutputChannel

更多信息请参见 路由选项

AggregatingMessageHandler 现在不会在输出时拆分 MessageGroupProcessorCollection<Message<?>> 结果(除非它是 SimpleMessageGroupProcessor),而是发出一条包含整个集合作为有效载荷的单个消息。

更多信息请参见 聚合器

IntegrationFlows 工厂现在被标记为已弃用,取而代之的是在 IntegrationFlow 接口中可用的 fluent API。工厂类将在未来的版本中被移除。

更多信息请参见 Java DSL

org.springframework.util.concurrent.ListenableFuture 从 Spring Framework 6.0 开始已弃用。所有 Spring Integration 异步 API 都已迁移到 CompletableFuture

消息网关接口方法现在可以返回 Future<Void>Mono<Void>,并正确异步执行下游流程。

除了使用 @MessagingGateway 注解之外,接口还可以标记为 @Primary

@MessagingGateway 接口现在可以作为配置的 @Import 资源使用。

网关代理 Bean 的默认命名策略可以通过 @IntegrationComponentScan.nameGenerator() 属性进行自定义。如果存在 AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR Bean,则会先咨询它,否则会回退到 AnnotationBeanNameGenerator

更多信息请参见 消息网关

integrationGlobalProperties bean 现在由框架声明为 org.springframework.integration.context.IntegrationProperties 的实例,而不是之前已废弃的 java.util.Properties

如果查询未返回任何记录,现在以集合形式回复的消息处理程序(例如 JpaOutboundGatewayJdbcOutboundGateway 和其他基于 DB 的网关)将返回一个空的结果列表。以前,根据 requiresReply 的设置,会返回 null 结束流程或抛出异常。

RMI 移除

spring-integration-rmi 模块在之前的版本中已被弃用,现在已完全移除。没有替代模块:建议迁移到更安全的网络和应用程序协议,例如 WebSockets、RSockets、gRPC 或 REST。

GemFire 移除

spring-integration-gemfire 模块已完全移除,因为 Spring Data 2022.0.0 不支持 VMware GemFire 或 Apache Geode。

HTTP 变更

HttpRequestHandlingEndpointSupport 中公开的表达式求值上下文中的 #cookies 变量现在是一个 MultiValueMap,用于携带客户端设置的所有 cookie 值。更多信息请参见 HTTP 支持

Apache Kafka 更改

当在入站网关或消息驱动的通道适配器上提供 RetryTemplate 时,如果也提供了 errorChannel,则会自动配置 ErrorMessageSendingRecoverer

此外,还提供了新的 KafkaErrorMessageSendingRecoverer;这可以与 DefaultErrorHandler 一起使用,以避免长时间聚合重试延迟导致的分区再平衡问题。

更多信息请参见 Spring for Apache Kafka 支持

JDBC 更改

现在可以为 DefaultLockRepository 提供一个 PlatformTransactionManager,而不再依赖于应用程序上下文中的主 bean。

更多信息请参见 JDBC 锁注册表

TCP/IP 更改

AbstractConnectionFactoryDatagramPacketMessageMapperlookupHost 属性现在默认设置为 false,以避免在未配置 DNS 的环境中出现延迟。

有关更多信息,请参阅 TCP 和 UDP 支持

JMS 更改

如果将 replyPubSubDomain 选项设置为 trueJmsOutboundGateway 现在会创建一个 TemporaryTopic 而不是 TemporaryQueue

更多信息请参见 JMS 支持

安全性更改

ChannelSecurityInterceptor 及其注解 @SecuredChannel 和 XML <secured-channels> 配置已弃用,取而代之的是 AuthorizationChannelInterceptor

更多信息请参见安全支持

Webflux 请求属性支持

WebClient 请求属性支持已添加到 WebFluxRequestExecutingMessageHandler

更多信息请参见 WebFlux 请求属性