whats-new.md 6.5 KB
Newer Older
dallascao's avatar
dallascao 已提交
1 2
# 最新更新?

3
## 最新更新in Spring 积分 5.5?
dallascao's avatar
dallascao 已提交
4 5 6

如果你对更多细节感兴趣,请参阅作为 5.5 开发过程的一部分解决的问题跟踪票。

7
### 新组件
dallascao's avatar
dallascao 已提交
8

9
#### 文件聚合器
dallascao's avatar
dallascao 已提交
10 11 12

引入了基于`FileSplitter.FileMaker``CorrelationStrategy``ReleaseStrategy``MessageGroupProcessor`作为`FileAggregator`组件的实现。有关更多信息,请参见[文件聚合器](./file.html#file-aggregator)

13
#### MQTT v5 支持
dallascao's avatar
dallascao 已提交
14 15 16

`Mqttv5PahoMessageDrivenChannelAdapter``Mqttv5PahoMessageHandler`(包括相应的`MqttHeaderMapper`)被引入以支持 MQTV5 协议通信。有关更多信息,请参见[MQTT V5 支持](./mqtt.html#mqtt-v5)

17
### 一般变化
dallascao's avatar
dallascao 已提交
18 19 20 21 22 23 24 25 26 27 28 29 30

所有持久的`MessageGroupStore`实现都提供了基于目标数据库流 API 的`streamMessagesForGroup(Object groupId)`契约。有关更多信息,请参见[消息存储](./message-store.html#message-store)

现在,`integrationGlobalProperties` Bean(如果声明)必须是`org.springframework.integration.context.IntegrationProperties`的实例,而不是`java.util.Properties`的实例,该支持已被禁止用于向后兼容。添加`spring.integration.channels.error.requireSubscribers=true`全局属性是为了指示全局默认值`errorChannel`必须配置`requireSubscribers`选项(或不配置)。添加`spring.integration.channels.error.ignoreFailures=true`全局属性是为了指示全局默认值`errorChannel`必须忽略(或不忽略)调度错误并将消息传递给下一个处理程序。有关更多信息,请参见[全局属性](./configuration.html#global-properties)

`AbstractPollingEndpoint`(源轮询通道适配器和轮询消费者)将`maxMessagesPerPoll == 0`视为跳过调用源。稍后可以将其更改为不同的值,例如通过控制总线。有关更多信息,请参见[轮询消费者](./endpoint.html#endpoint-pollingconsumer)

`ConsumerEndpointFactoryBean`现在接受一个`reactiveCustomizer``Function`到任何输入通道作为反应流源,并在下面使用一个`ReactiveStreamsConsumer`。这在 Java DSL 中以`ConsumerEndpointSpec.reactive()`选项的形式进行了介绍,并作为消息传递注释的`@Reactive`嵌套注释进行了介绍。有关更多信息,请参见[反应流支持](./reactive-streams.html#reactive-streams)

对于一些细粒度的调度用例,现在可以将相关消息处理程序的`groupTimeoutExpression`(an`Aggregator``Resequencer`)计算为`java.util.Date`。还将`BiFunction groupConditionSupplier`选项添加到`AbstractCorrelatingMessageHandler`中,以针对要添加到组中的消息提供`MessageGroup`条件。有关更多信息,请参见[Aggregator](./aggregator.html#aggregator)

可以为`MessageGroup`抽象提供一个`condition`,以便稍后进行评估,从而为小组做出决策。有关更多信息,请参见[消息组条件](./message-store.html#message-group-condition)

31
#### 集成流组合
dallascao's avatar
dallascao 已提交
32 33 34

添加了新的`IntegrationFlows.from(IntegrationFlow)`工厂方法,以允许从现有流的输出启动当前的`IntegrationFlow`。此外,在`IntegrationFlowDefinition`中增加了一个`to(IntegrationFlow)`终端操作符,以继续当前在输入通道处的一些其它流。有关更多信息,请参见[集成流组成](./dsl.html#integration-flows-composition)

35
#### AMQP 变化
dallascao's avatar
dallascao 已提交
36 37 38

`AmqpInboundChannelAdapter``AmqpInboundGateway`(以及相应的 Java DSL 构建器)现在支持`org.springframework.amqp.rabbit.retry.MessageRecoverer`作为通用目的`RecoveryCallback`的 AMQP 特定替代方案。有关更多信息,请参见[AMQP 支持](./amqp.html#amqp)

39
#### Redis 变更
dallascao's avatar
dallascao 已提交
40 41 42

`ReactiveRedisStreamMessageProducer`现在为所有`StreamReceiver.StreamReceiverOptionsBuilder`选项设置了 setter,包括一个`onErrorResume`函数。有关更多信息,请参见[Redis 支持](./redis.html#redis)

43
#### http 更改
dallascao's avatar
dallascao 已提交
44 45 46

`HttpRequestExecutingMessageHandler`不再回退到`application/x-java-serialized-object`内容类型,并让`RestTemplate`根据提供的`HttpMessageConverter`对请求体转换做出最终决定。它现在还具有一个`extractResponseBody`标志(默认情况下是`true`),以仅返回响应主体,或返回整个`ResponseEntity`作为响应消息的有效负载,而不依赖于所提供的`expectedResponseType`。对于`WebFluxRequestExecutingMessageHandler`也提供了相同的选项。有关更多信息,请参见[HTTP 支持](./http.html#http)

47
#### 文件/ftp/sftp 更改
dallascao's avatar
dallascao 已提交
48 49 50 51 52 53 54

持久文件列表过滤器现在有一个布尔属性`forRecursion`。将此属性设置为`true`,还将设置`alwaysAcceptDirectories`,这意味着出站网关上的递归操作(`ls``mget`)现在每次都将遍历完整目录树。这是为了解决未检测到目录树中深层更改的问题。此外,`forRecursion=true`会导致文件的完整路径被用作元数据存储键;这解决了一个问题,即如果同名文件在不同的目录中多次出现,则过滤器无法正常工作。重要提示:这意味着,对于顶层目录下的文件,将找不到持久性元数据存储中的现有密钥。由于这个原因,默认情况下,该属性是`false`;这可能会在将来的版本中发生变化。

`FileInboundChannelAdapterSpec`现在有了一个方便的`recursive(boolean)`选项,而不是要求显式引用`RecursiveDirectoryScanner`

为了方便起见,现在可以在`mv`命令中使用`remoteDirectoryExpression`

55
#### MongoDB 变更
dallascao's avatar
dallascao 已提交
56 57 58 59 60

`MongoDbMessageSourceSpec`被添加到 Mongodd Java DSL 中。现在在`MongoDbMessageSource``ReactiveMongoDbMessageSource`实现上都公开了`update`选项。

有关更多信息,请参见[MongoDB 支持](./mongodb.html#mongodb)

61
#### WebSockets 更改
dallascao's avatar
dallascao 已提交
62 63 64 65 66

基于`ServerWebSocketContainer`的 WebSocket 通道适配器现在可以在运行时进行注册和删除。

有关更多信息,请参见[WebSockets 支持](./web-sockets.html#web-sockets)

67
####  JPA 变化
dallascao's avatar
dallascao 已提交
68 69 70 71 72

`JpaOutboundGateway`现在支持`Iterable`消息有效负载`PersistMode.DELETE`

有关更多信息,请参见[出站通道适配器](./jpa.html#jpa-outbound-channel-adapter)

73
#### 网关更改
dallascao's avatar
dallascao 已提交
74 75

以前,在使用 XML 配置时,对于无参数方法,`@Gateway.payloadExpression`会被忽略。有一个可能的中断更改-如果方法被注释为`@Payload`以及`@Gateway`(使用不同的表达式),以前将应用`@Payload`,现在将应用`@Gateway.payloadExpression`。有关更多信息,请参见[带有注释和 XML 的网关配置](./gateway.html#gateway-configuration-annotations)[调用无参数方法](./gateway.html#gateway-calling-no-argument-methods)