6.1 和 6.2 之间的变化
新组件
Debezium 入站通道适配器
基于 Debezium 引擎的变更数据捕获 (CDC) 通道适配器,允许捕获数据库变更事件,将其转换为消息并将这些消息流式传输到出站通道。 有关更多信息,请参阅 Debezium 支持。
一般变化
-
<poller>
的 XML 配置和@Poller
注解现在支持 ISO 8601 持续时间格式,用于fixed-delay
、fixed-rate
和initial-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 支持变化
JdbcMessageStore
、JdbcChannelMessageStore
、JdbcMetadataStore
和 DefaultLockRepository
实现了 SmartLifecycle
,并在 start()
方法中对其各自的表执行 SELECT COUNT
查询,以确保所需表(根据提供的 prefix)存在于目标数据库中。
PostgresChannelMessageStoreQueryProvider
现在为轮询查询提供单个 DELETE…RETURNING
语句。
为此,ChannelMessageStoreQueryProvider
公开了 isSingleStatementForPoll
选项,该选项由 JdbcChannelMessageStore
查询。
有关更多信息,请参阅 JDBC 消息存储。
MongoDB 支持变化
在 AbstractConfigurableMongoDbMessageStore
中引入了一个新选项 setCreateIndexes(boolean)
,用于禁用自动索引创建。
有关示例,请参阅 MongoDB 消息存储。
远程文件支持变化
引入了 FtpLastModifiedFileListFilter
、SftpLastModifiedFileListFilter
和 SmbLastModifiedFileListFilter
,以分别允许基于最后修改策略对 FTP
、SFTP
和 SMB
进行文件过滤。
有关更多信息,请参阅 FTP 入站通道适配器、SFTP 入站通道适配器 和 SMB 入站通道适配器。
SFTP 支持变化
引入了一个新的 DefaultSftpSessionFactory.createSftpClient(…)
方法,以在被覆盖时支持自定义 SftpClient
。
有关更多信息,请参阅 SFTP 会话工厂。
安全支持变化
spring-integration-security
模块中的最后一个类 SecurityContextPropagationChannelInterceptor
已被弃用,取而代之的是移至 spring-security-messaging
模块的类似类。
有关更多信息,请参阅 Spring Integration 中的安全。