5.1 和 5.2 之间的变化

包和类的变化

Pausable 已从 o.s.i.endpoint 移动到 o.s.i.core

行为变化

有关此版本中的行为变化,请参阅 迁移指南

新组件

RSocket 支持

spring-integration-rsocket 模块现在可用,它提供了 RSocket 协议支持的通道适配器实现。 有关更多信息,请参阅 RSocket 支持

速率限制建议支持

RateLimiterRequestHandlerAdvice 现在可用,用于限制处理程序的请求速率。 有关更多信息,请参阅 速率限制建议

缓存建议支持

CacheRequestHandlerAdvice 现在可用,用于缓存处理程序上的请求结果。 有关更多信息,请参阅 缓存建议

Kotlin 脚本支持

JSR223 脚本模块现在包含对 Kotlin 脚本的支持。 有关更多信息,请参阅 脚本支持

Flux 聚合器支持

FluxAggregatorMessageHandler 现在可用,用于基于 Project Reactor Flux 运算符的消息分组和窗口逻辑。 有关更多信息,请参阅 Flux 聚合器

FTP/SFTP 事件发布器

FTP 和 SFTP 模块现在为某些 Apache Mina FTP/SFTP 服务器事件提供了一个事件监听器。 有关更多信息,请参阅 Apache Mina FTP 服务器事件Apache Mina SFTP 服务器事件

Avro 转换器

现在提供了简单的 Apache Avro 转换器。 有关更多信息,请参阅 x5.2-avro

一般变化

JsonToObjectTransformer 现在支持目标对象的泛型,以便反序列化。 有关更多信息,请参阅 JSON 转换器

splitter 现在支持 discardChannel 配置选项。 有关更多信息,请参阅 拆分器

控制总线现在可以处理 Pausable (Lifecycle 的扩展) 操作。 有关更多信息,请参阅 控制总线

Function<MessageGroup, Map<String, Object>> 策略已引入聚合器组件,用于合并和计算输出消息的头。 有关更多信息,请参阅 聚合器编程模型

框架中抛出的所有 MessageHandlingException 现在都包含一个 bean 资源和源,以便在没有最终用户代码参与的情况下回溯配置部分。 有关更多信息,请参阅 错误处理

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

AMQP 变化

出站端点现在可以配置为在超时时间内未收到发布者确认时合成一个“nack”。 有关更多信息,请参阅 出站通道适配器

入站通道适配器现在可以接收批处理消息作为 List<?> 载荷,而不是为每个批处理片段接收一个离散消息。 有关更多信息,请参阅 批处理消息

出站通道适配器现在可以配置为阻塞调用线程,直到收到发布者确认(acknowledgment)。 有关更多信息,请参阅 出站通道适配器

文件变化

对过滤远程文件进行了一些改进。 有关更多信息,请参阅 远程持久文件列表过滤器

TCP 变化

ByteArrayLengthHeaderSerializer 使用的长度头现在可以包含头的长度以及载荷的长度。 有关更多信息,请参阅 消息分隔(序列化器和反序列化器)

使用 TcpNioServerConnectionFactory 时,现在优先接受新连接而不是从现有连接读取,但这是可配置的。 有关更多信息,请参阅 关于非阻塞 I/O (NIO)

出站网关有一个新的属性 closeStreamAfterSend;当与每个请求/回复的新连接一起使用时,它向服务器发送 EOF 信号,而无需关闭连接。 这对于使用 EOF 而不是数据中的某个分隔符来表示消息结束的服务器非常有用。 有关更多信息,请参阅 TCP 网关

客户端连接工厂现在支持 connectTimeout,如果在此时间内未建立连接,则会抛出异常。 有关更多信息,请参阅 TCP 连接工厂

SoftEndOfStreamException 现在是 RuntimeException,而不是继承 IOException

邮件变化

AbstractMailReceiver 现在有一个 autoCloseFolder 选项(默认为 true),用于在获取后禁用自动关闭文件夹,而是填充 IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE 头以供下游交互。 有关更多信息,请参阅 邮件接收通道适配器

HTTP 变化

HTTP 入站端点现在支持请求载荷验证。 有关更多信息,请参阅 HTTP 支持

WebFlux 变化

WebFluxRequestExecutingMessageHandler 现在支持 PublisherResourceMultiValueMap 作为请求消息 payloadWebFluxInboundEndpoint 现在支持请求载荷验证。 有关更多信息,请参阅 WebFlux 支持

MongoDb 变化

MongoDbMessageStore 现在可以配置自定义转换器。 有关更多信息,请参阅 MongoDB 支持

路由器变化

现在可以禁用回退到通道键作为通道 bean 名称。 有关更多信息,请参阅 动态路由器

FTP/SFTP 变化

RotatingServerAdvice 现在与 RotationPolicy 及其 StandardRotationPolicy 解耦。

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