此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1! |
5.4 和 5.5 之间的更改
文件聚合器
一个FileSplitter.FileMaker
-基于实现CorrelationStrategy
,ReleaseStrategy
和MessageGroupProcessor
作为FileAggregator
组件被引入。
有关详细信息,请参阅 File Aggregator。
MQTT v5 支持
这Mqttv5PahoMessageDrivenChannelAdapter
和Mqttv5PahoMessageHandler
(包括各自MqttHeaderMapper
)的引入,以支持 MQTT v5 协议通信。
有关更多信息,请参阅 MQTT v5 支持。
一般更改
所有执着的MessageGroupStore
实现提供了一个streamMessagesForGroup(Object groupId)
基于目标数据库流 API 的合约。
有关详细信息,请参阅消息存储。
这integrationGlobalProperties
bean(如果声明)现在必须是org.springframework.integration.context.IntegrationProperties
而不是java.util.Properties
,该支持已弃用,以向后兼容。
这spring.integration.channels.error.requireSubscribers=true
global 属性的添加,以指示全局默认值errorChannel
必须配置requireSubscribers
选项(或不选项)。
这spring.integration.channels.error.ignoreFailures=true
global 属性的添加,以指示全局默认值errorChannel
必须忽略(或不忽略)分派错误并将消息传递给下一个处理程序。
有关详细信息,请参阅全局属性。
一AbstractPollingEndpoint
(源轮询通道适配器和轮询使用者)处理maxMessagesPerPoll == 0
跳过调用源。
稍后可以将其更改为不同的值,例如通过控制总线。
有关详细信息,请参阅轮询消费者。
这ConsumerEndpointFactoryBean
现在接受一个reactiveCustomizer
Function
到任何输入通道作为反应流源,并使用ReactiveStreamsConsumer
下面。
这被涵盖为ConsumerEndpointSpec.reactive()
选项,作为 Java DSL 中的@Reactive
消息传递注释的嵌套注释。
有关更多信息,请参阅响应式流支持。
这groupTimeoutExpression
对于相关消息处理程序(Aggregator
和Resequencer
) 现在可以计算为java.util.Date
适用于一些细粒度的调度用例。
此外,BiFunction groupConditionSupplier
选项添加到AbstractCorrelatingMessageHandler
提供MessageGroup
条件。
有关详细信息,请参阅聚合器。
这MessageGroup
抽象可以提供一个condition
稍后评估,为小组做出决定。
有关详细信息,请参阅消息组条件。
集成流组合
新的IntegrationFlows.from(IntegrationFlow)
添加了工厂方法以允许启动当前IntegrationFlow
从现有流的输出。
此外,IntegrationFlowDefinition
添加了一个to(IntegrationFlow)
终端运算符,以继续在其他流的输入通道处流动电流。
有关详细信息,请参阅集成流组合。
AMQP 更改
这AmqpInboundChannelAdapter
和AmqpInboundGateway
(以及相应的 Java DSL 构建器)现在支持org.springframework.amqp.rabbit.retry.MessageRecoverer
作为通用的 AMQP 特定替代方案RecoveryCallback
.
有关详细信息,请参阅 AMQP 支持。
Redis 更改
这ReactiveRedisStreamMessageProducer
现在有所有StreamReceiver.StreamReceiverOptionsBuilder
选项,包括onErrorResume
功能。
有关更多信息,请参阅 Redis 支持。
HTTP 更改
这HttpRequestExecutingMessageHandler
不会回退到application/x-java-serialized-object
内容类型,并允许RestTemplate
根据HttpMessageConverter
提供。
它现在还有一个extractResponseBody
标志(即true
默认情况下)仅返回响应正文,或返回整个ResponseEntity
作为回复消息有效负载,独立于提供的expectedResponseType
.
同样的选项也适用于WebFluxRequestExecutingMessageHandler
太。
有关更多信息,请参阅 HTTP 支持。
文件/FTP/SFTP 更改
持久文件列表过滤器现在具有布尔属性forRecursion
.
将此属性设置为true
,也设置alwaysAcceptDirectories
,这意味着出站网关上的递归作 (ls
和mget
) 现在每次都会遍历完整的目录树。
这是为了解决未检测到目录树深处更改的问题。
另外forRecursion=true
导致文件的完整路径用作元数据存储键;这解决了如果具有相同名称的文件多次出现在不同目录中,则过滤器无法正常工作的问题。
重要提示:这意味着对于顶级目录下的文件,将找不到持久元数据存储中的现有密钥。
因此,该属性是false
默认情况下;这可能会在将来的版本中更改。
这FileInboundChannelAdapterSpec
现在有一个方便的recursive(boolean)
选项,而不是要求显式引用RecursiveDirectoryScanner
.
这remoteDirectoryExpression
现在可以在mv
为了方便起见,命令。
MongoDb 更改
这MongoDbMessageSourceSpec
被添加到 MongoDd Java DSL 中。
一update
选项现在在MongoDbMessageSource
和ReactiveMongoDbMessageSource
实现。
有关更多信息,请参阅 MongoDb 支持。
WebSockets 更改
基于ServerWebSocketContainer
现在可以在运行时注册和删除。
有关更多信息,请参阅 WebSockets 支持。
JPA 更改
这JpaOutboundGateway
现在支持Iterable
消息有效负载PersistMode.DELETE
.
有关详细信息,请参阅出站通道适配器。
网关更改
以前,在使用 XML 配置时,@Gateway.payloadExpression
对于无参数方法被忽略。
有一个可能的重大更改 - 如果该方法使用@Payload
以及@Gateway
(使用不同的表达式)之前,@Payload
将应用,现在@Gateway.payloadExpression
被应用。
有关详细信息,请参阅使用注释和 XML 进行网关配置和调用无参数方法。