|
对于最新的稳定版本,请使用 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 的合约。
有关详细信息,请参阅消息存储。
这integrationGlobalPropertiesbean(如果声明)现在必须是org.springframework.integration.context.IntegrationProperties而不是java.util.Properties,该支持已弃用,以向后兼容。
这spring.integration.channels.error.requireSubscribers=trueglobal 属性的添加,以指示全局默认值errorChannel必须配置requireSubscribers选项(或不选项)。
这spring.integration.channels.error.ignoreFailures=trueglobal 属性的添加,以指示全局默认值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 进行网关配置和调用无参数方法。