5.5 和 6.0 之间的变化

新组件

已添加用于集成流定义的 Groovy DSL 实现。 有关详细信息,请参阅 Groovy DSL

MQTT ClientManager

已添加新的 MQTT ClientManager,以支持跨不同通道适配器的可重用 MQTT 连接。 有关详细信息,请参阅 共享 MQTT 客户端支持

GraphQL 支持

已添加 GraphQL 支持。 有关详细信息,请参阅 GraphQL 支持

Apache Camel 支持

已引入对 Apache Camel 路由的支持。 有关详细信息,请参阅 Apache Camel 支持

Hazelcast 支持

Hazelcast Spring Integration Extensions 项目已迁移为 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 流队列支持

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

Apache MINA SFTP

SFTP 模块已从过时的 JCraft JSch 库完全重做为更健壮和现代的 Apache MINA 项目的 org.apache.sshd:sshd-sftp 模块。

有关详细信息,请参阅 SFTP 适配器

Micrometer 观测

现在支持使用 Micrometer 启用计时器和跟踪的观测。 有关详细信息,请参阅 Micrometer 观测

GraalVM Polyglot 支持

脚本模块现在提供基于 GraalVM Polyglot 支持的 PolyglotScriptExecutor 实现。 JavaScript 支持现在基于此执行器,因为其 JSR223 实现已从 Java 本身中移除。 有关详细信息,请参阅 脚本支持

Apache Cassandra 支持

Apache Cassandra Spring Integration Extensions 项目已迁移为 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 接口本身中提供的流式 API。 该工厂类将在未来的版本中移除。

有关详细信息,请参阅 Java DSL

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

Messaging Gateway 接口方法现在可以返回 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 的网关)如果查询没有返回任何记录,现在返回空结果列表。 以前,返回 null 会结束流,或者抛出异常,具体取决于 requiresReply

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 请求属性支持

已为 WebFluxRequestExecutingMessageHandler 添加 Webclient 请求属性支持。

有关详细信息,请参阅 WebFlux 请求属性