6.1 和 6.2 之间的变化

新组件

Debezium 入站通道适配器

基于 Debezium 引擎的变更数据捕获 (CDC) 通道适配器,允许捕获数据库变更事件,将其转换为消息并将这些消息流式传输到出站通道。 有关更多信息,请参阅 Debezium 支持

一般变化

  • <poller> 的 XML 配置和 @Poller 注解现在支持 ISO 8601 持续时间格式,用于 fixed-delayfixed-rateinitial-delay 选项。 有关更多信息,请参阅 轮询消费者

  • Java、Groovy 和 Kotlin DSL 现在在 IntegrationFlowDefinition 中具有上下文相关的方法,带有一个 Consumer 参数,可以使用一个构建器和可读选项来配置端点及其处理器。 例如,请参阅 Java DSL 章中的 transformWith()splitWith()

  • 引入了一个新的 spring.integration.endpoints.defaultTimeout 全局属性,用于覆盖应用程序中所有端点的默认 30 秒超时。 有关更多信息,请参阅 全局属性

  • @MessagingGateway 和 Java DSL 提供的 GatewayEndpointSpec 现在公开了 MessagingGatewaySupport 的内部 MethodInvocationGateway 扩展的 errorOnTimeout 属性。 有关更多信息,请参阅 没有响应到达时的网关行为

  • LockRegistry 提供了类似模板的 API,用于在锁定状态下执行提供的任务。 有关更多信息,请参阅 分布式锁

  • 轮询端点的默认触发器现在是一个 PeriodicTrigger 实例,具有 1 秒的固定延迟周期;以前,默认值为 10 毫秒。 有关更多信息,请参阅 轮询消费者

WebSockets 变化

  • 对于服务器和客户端 WebSocket 容器,发送缓冲区溢出策略现在可以在 IntegrationWebSocketContainer 中以及通过 XML 中的 send-buffer-overflow-strategy 进行配置。 此策略决定了当会话的出站消息缓冲区达到配置的限制时的行为。 有关更多信息,请参阅 WebSockets 支持

Apache Kafka 支持变化

KafkaMessageSource 现在从消费者属性中提取 ErrorHandlingDeserializer 配置,并重新抛出来自失败记录头的 DeserializationException。 有关更多信息,请参阅 Kafka 入站通道适配器

JDBC 支持变化

JdbcMessageStoreJdbcChannelMessageStoreJdbcMetadataStoreDefaultLockRepository 实现了 SmartLifecycle,并在 start() 方法中对其各自的表执行 SELECT COUNT 查询,以确保所需表(根据提供的 prefix)存在于目标数据库中。 PostgresChannelMessageStoreQueryProvider 现在为轮询查询提供单个 DELETE…​RETURNING 语句。 为此,ChannelMessageStoreQueryProvider 公开了 isSingleStatementForPoll 选项,该选项由 JdbcChannelMessageStore 查询。 有关更多信息,请参阅 JDBC 消息存储

MongoDB 支持变化

AbstractConfigurableMongoDbMessageStore 中引入了一个新选项 setCreateIndexes(boolean),用于禁用自动索引创建。 有关示例,请参阅 MongoDB 消息存储

远程文件支持变化

引入了 FtpLastModifiedFileListFilterSftpLastModifiedFileListFilterSmbLastModifiedFileListFilter,以分别允许基于最后修改策略对 FTPSFTPSMB 进行文件过滤。 有关更多信息,请参阅 FTP 入站通道适配器SFTP 入站通道适配器SMB 入站通道适配器

SFTP 支持变化

引入了一个新的 DefaultSftpSessionFactory.createSftpClient(…​) 方法,以在被覆盖时支持自定义 SftpClient。 有关更多信息,请参阅 SFTP 会话工厂

安全支持变化

spring-integration-security 模块中的最后一个类 SecurityContextPropagationChannelInterceptor 已被弃用,取而代之的是移至 spring-security-messaging 模块的类似类。 有关更多信息,请参阅 Spring Integration 中的安全