此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.0! |
5.4 和 5.5 之间的更改
文件聚合器
一个FileSplitter.FileMaker
-based 实现CorrelationStrategy
,ReleaseStrategy
和MessageGroupProcessor
作为FileAggregator
组件。
有关更多信息,请参阅 File Aggregator 。
MQTT v5 支持
这Mqttv5PahoMessageDrivenChannelAdapter
和Mqttv5PahoMessageHandler
(包括各自的MqttHeaderMapper
) 的 API 协议的调用,以支持 MQTT v5 协议通信。
有关更多信息,请参阅 MQTT v5 支持。
一般更改
所有持久的MessageGroupStore
implementation 提供了一个streamMessagesForGroup(Object groupId)
Contract 的 Contract。
有关更多信息,请参阅 Message Store 。
这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
as 跳过调用源。
稍后可以将其更改为不同的值,例如通过 Control Bus。
有关更多信息,请参阅轮询使用者。
这ConsumerEndpointFactoryBean
现在接受reactiveCustomizer
Function
作为响应式流源添加到任何输入通道,并使用ReactiveStreamsConsumer
下面。
这被涵盖为ConsumerEndpointSpec.reactive()
选项,并作为 Java DSL 中的@Reactive
消息注释的嵌套注释。
有关更多信息,请参阅 Reactive Streams Support 。
这groupTimeoutExpression
对于关联消息处理程序(Aggregator
和Resequencer
) 现在可以计算为java.util.Date
对于一些精细的调度用例。
此外,BiFunction groupConditionSupplier
选项添加到AbstractCorrelatingMessageHandler
要提供MessageGroup
条件。
有关更多信息,请参阅 Aggregator。
这MessageGroup
abstraction 可以通过condition
稍后进行评估,以便为小组做出决定。
有关更多信息,请参阅 Message Group Condition 。
集成流组合
新的IntegrationFlows.from(IntegrationFlow)
添加了 factory 方法以允许启动电流IntegrationFlow
从现有流的输出中。
此外,IntegrationFlowDefinition
已添加to(IntegrationFlow)
terminal 运算符在某个其他流的输入通道处继续电流。
有关更多信息,请参阅 集成流组合 。
AMQP 更改
这AmqpInboundChannelAdapter
和AmqpInboundGateway
(以及相应的 Java DSL 构建器)现在支持org.springframework.amqp.rabbit.retry.MessageRecoverer
作为通用RecoveryCallback
.
有关更多信息,请参阅 AMQP 支持。
Redis 更改
这ReactiveRedisStreamMessageProducer
现在为所有StreamReceiver.StreamReceiverOptionsBuilder
选项,包括onErrorResume
功能。
有关更多信息,请参阅 Redis 支持。
HTTP 更改
这HttpRequestExecutingMessageHandler
不会回退到application/x-java-serialized-object
content 类型,并允许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
message payload 的PersistMode.DELETE
.
有关更多信息,请参阅 Outbound Channel Adapter 。
网关更改
以前,在使用 XML 配置时,@Gateway.payloadExpression
对于无参数方法被忽略。
有一个可能的中断性变更 - 如果方法被注释为@Payload
以及@Gateway
(使用不同的表达式)以前,@Payload
将应用,现在@Gateway.payloadExpression
。
有关更多信息,请参阅使用注释和 XML 的网关配置和调用无参数方法。