6.1 和 6.2 之间的更改
新组件
Debezium 入站通道适配器
基于 Debezium Engine 的变更数据捕获 (CDC) 通道适配器,允许捕获数据库变更事件,将它们转换为消息并流式传输到输出通道。更多信息,请参阅 Debezium 支持。
通用更改
-
<poller>
和@Poller
注解的 XML 配置现在支持 ISO 8601 持续时间格式用于fixed-delay
、fixed-rate
和initial-delay
选项。更多信息请参阅轮询消费者。 -
Java、Groovy 和 Kotlin DSL 现在在
IntegrationFlowDefinition
中提供了上下文特定的方法,这些方法仅带有一个Consumer
参数来配置一个端点及其处理器,并且可以使用一个构建器和可读选项。例如,参见 Java DSL 章节中的transformWith()
、splitWith()
。 -
引入了一个新的全局属性
spring.integration.endpoints.defaultTimeout
来覆盖应用程序中所有端点的默认 30 秒超时。更多信息请参阅全局属性。 -
Java DSL 提供的
@MessagingGateway
和GatewayEndpointSpec
现在暴露了内部MethodInvocationGateway
扩展的errorOnTimeout
属性。更多信息请参阅当没有响应到达时网关的行为。 -
LockRegistry
提供了模板式的 API 来执行提供的任务,同时保持锁定。更多信息请参阅分布式锁。 -
轮询端点的默认触发器现在是一个具有 1 秒固定延迟周期的
PeriodicTrigger
实例;以前,默认值为 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
查询,以确保根据提供的前缀所需的表存在于目标数据库中。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 中的安全性。