Changes between 5.1 and 5.2

Package and Class Changes

Pausable 已从 o.s.i.endpoint 移至 o.s.i.core

Behavior Changes

有关此版本中的行为更改,请参见 Migration Guide

New Components

RSocket Support

spring-integration-rsocket 模块现在提供 RSocket 协议支持的通道适配器实现。有关详细信息,请参阅 RSocket Support

Rate Limit Advice Support

现已推出 RateLimiterRequestHandlerAdvice,用于限制对处理程序的请求速率。有关更多信息,请参见 Rate Limiter Advice

Caching Advice Support

现已推出 CacheRequestHandlerAdvice,用于缓存对处理程序的请求结果。有关更多信息,请参见 Caching Advice

Kotlin Scripts Support

JSR223 脚本模块现在包含对 Kotlin 脚本的支持。有关详细信息,请参见 Scripting Support

Flux Aggregator Support

现已推出 FluxAggregatorMessageHandler,用于根据 Project Reactor Flux 运算符对消息进行分组和窗口化。有关更多信息,请参见 Flux Aggregator

FTP/SFTP Event Publisher

FTP 和 SFTP 模块现在提供针对特定 Apache Mina FTP/SFTP 服务端事件的事件监听器。请参见 Apache Mina FTP Server EventsApache Mina SFTP Server Events 以了解更多信息。

Avro Transformers

现已提供简单的 Apache Avro 转换器。有关更多信息,请参见 Avro Transformers

General Changes

现已为 JsonToObjectTransformer 支持将目标对象反序列化成泛型。有关更多信息,请参见 JSON Transformers

splitter 现在支持 discardChannel 配置选项。请参见 Splitter 以了解更多信息。

Control Bus 现可处理 Pausable 操作( Lifecycle 的扩展)。有关更多信息,请参见 Control Bus

已经为聚合器组件引入 Function<MessageGroup, Map<String, Object>> 策略,以合并和计算输出消息的标头。有关更多信息,请参见 Aggregator Programming Model

框架中抛出的所有 MessageHandlingException,现在都包含一个 bean 资源和源,用于在没有涉及最终用户代码的情况下回溯配置部分。有关更多信息,请参见 Error Handling

为了改善最终用户体验,Java DSL 现在提供了一个配置器变体以通过网关接口启动流。请参见 IntegrationFlows.from(Class<?> serviceInterface, Consumer<GatewayProxySpec> endpointConfigurer)`JavaDocs 以了解更多信息。此外,`MethodArgsHolder 现在是 GatewayProxyFactoryBean 中所有表达式的评估上下文的根对象。#args#method 评估上下文变量现在已弃用。请参见 Messaging Gateways 以了解更多信息。

AMQP Changes

出站端点现在可以配置为在超时未收到发布者确认的情况下合成“nack”。有关详细信息,请参见 Outbound Channel Adapter

入站通道适配器现在可以接收批处理消息,作为 List<?> 有效负载,而不是为每个批处理片段接收离散消息。有关详细信息,请参见 Batched Messages

出站通道适配器现在可以配置为阻塞调用线程,直到收到发布者确认(应答)。请参见 Outbound Channel Adapter 以了解更多信息。

File Changes

已经进行了一些改进以筛选远程文件。请参见 Remote Persistent File List Filters 以了解更多信息。

TCP Changes

ByteArrayLengthHeaderSerializer 中使用的长度头现在除了有效负载可以包含头信息长度。有关详细信息,请参见 Message Demarcation (Serializers and Deserializers)

当使用 TcpNioServerConnectionFactory 时,现在优先接受新连接而不是从现有连接读取,但这是可配置的。请参见 About Non-blocking I/O (NIO) 以了解更多信息。

出站网关有一个新属性 closeStreamAfterSend;当每个请求/回复使用新连接时,它会向服务器发出 EOF 信号,但不会关闭连接。这对使用 EOF 来发送消息结束信号而不是数据中某个定界符的服务器来说很有用。请参见 TCP Gateways 以了解更多信息。

客户端连接工厂现在支持 connectTimeout,它会在连接未在指定时间内建立时引发异常。有关详细信息,请参见 TCP Connection Factories

SoftEndOfStreamException 现在是 RuntimeException,而不是扩展 IOException

Mail Changes

AbstractMailReceiver 现在有一个 autoCloseFolder 选项(默认为 true),用于在获取之后禁用自动关闭文件夹,而是填充 IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE 标头以供下游交互。有关详细信息,请参见 Mail-receiving Channel Adapter

HTTP Changes

HTTP 入站端点现在支持请求有效负载验证。请参见 HTTP Support 以了解更多信息。

WebFlux Changes

WebFluxRequestExecutingMessageHandler 现在支持 PublisherResourceMultiValueMap 作为请求消息 payloadWebFluxInboundEndpoint 现在支持请求有效负载验证。请参见 WebFlux Support 以了解更多信息。

MongoDb Changes

MongoDbMessageStore 现在可以用自定义转换器进行配置。请参见 MongoDB Support 以了解更多信息。

Router Changes

您现在可以禁用回退到频道密钥的情况,使其作为频道 bean 名称。有关详细信息,请参见 Dynamic Routers

FTP/SFTP Changes

RotatingServerAdvice 现已与 RotationPolicy 及其 StandardRotationPolicy 分离。

现在,远程文件信息,包括主机/端口和目录,包含在 AbstractInboundFileSynchronizingMessageSourceAbstractRemoteFileStreamingMessageSource 实现中的消息头中。此信息也包含在 AbstractRemoteFileOutboundGateway 实现的读取操作结果的头中。FTP 出站端点现在支持 chmod 以更改已上传文件的权限。(SFTP 自 4.3 版起已支持它)。有关详细信息,请参见 FTP(S) SupportSFTP Support