跳到主要内容

5.2 和 5.3 之间的更改

QWen Plus 中英对照 Changes between 5.2 and 5.3

新组件

集成模式

引入了 IntegrationPattern 抽象来指示 Spring Integration 组件属于哪个企业集成模式(一个 IntegrationPatternType)和类别。有关此抽象及其用例的更多信息,请参阅其 JavaDocs 和 集成图

ReactiveMessageHandler

ReactiveMessageHandler 现在已得到框架的原生支持。更多信息,请参阅 ReactiveMessageHandler

ReactiveMessageSourceProducer

ReactiveMessageSourceProducerMessageProducerSupport 的响应式实现,用于将提供的 MessageSource 包装成一个 Flux,以便按需调用 receive()。更多信息,请参见 Reactive Streams Support

Java DSL 扩展

引入了一个新的 IntegrationFlowExtension API,用于扩展现有的 Java DSL,添加自定义或组合的 EIP 操作符。这也可以用于为任何现成的 IntegrationComponentSpec 扩展引入定制化内容。更多信息,请参见 DSL 扩展

Kotlin DSL

已经引入了用于集成流配置的 Kotlin DSL。更多信息,请参阅 Kotlin DSL 章节

ReactiveRequestHandlerAdvice

提供了一个 ReactiveRequestHandlerAdvice 用于自定义消息处理程序的 Mono 回复。更多信息,请参阅 Reactive Advice

HandleMessageAdviceAdapter

提供了一个 HandleMessageAdviceAdapter,用于包装任何 MethodInterceptor,以便应用于 MessageHandler.handleMessage(),而不是默认的 AbstractReplyProducingMessageHandler.RequestHandler.handleRequestMessage() 行为。更多信息,请参见 处理消息建议

MongoDB 反应式通道适配器

spring-integration-mongodb 模块现在为 Spring Data 中的 Reactive MongoDb 驱动程序支持提供了通道适配器实现。此外,还通过 MongoDbChangeStreamMessageProducer 提供了对 MongoDb 变更流支持的响应式实现。更多信息请参见 MongoDB 支持

接收消息建议

引入了一个特殊的 ReceiveMessageAdvice,用于代理 exactly MessageSource.receive()PollableChannel.receive()。更多信息,请参见智能轮询

通用更改

网关代理现在默认不代理 default 方法。更多信息,请参阅调用默认方法

内部组件(例如 _org.springframework.integration.errorLogger)在集成图中显示时现在使用缩短的名称。更多信息,请参见 集成图

在聚合器中,当 MessageGroupProcessor 返回一个 Message 时,如果 sequenceDetails 与组中第一个消息的头部匹配,则会对输出消息执行 MessageBuilder.popSequenceDetails()。有关更多信息,请参阅 Aggregator 编程模型

Java DSL 中添加了一个新的 publishSubscribeChannel() 操作符,它是基于 BroadcastCapableChannelBroadcastPublishSubscribeSpec 的。这个流畅的 API 在我们将子流配置为发布订阅者用于像 SubscribableJmsChannelSubscribableRedisChannel 等代理支持的通道时具有优势。更多信息请参见 子流支持

Spring Integration 中的事务支持现在还包括配置 ReactiveTransactionManager 的选项,如果 MessageSourceMessageHandler 实现生成要发送的有效负载的响应式类型。更多信息请参见 TransactionInterceptorBuilder。另请参阅响应式事务

在 Java DSL 中添加了一个新的 intercept() 操作符,用于注册 ChannelInterceptor 实例而无需创建显式的通道。更多信息请参见 操作符 intercept()

MessageStoreSelector 有一个新的机制来比较旧值和新值。更多信息,请参阅 幂等接收器企业集成模式

MessageProducerSupport 基类现在有了一个 subscribeToPublisher(Publisher<? extends Message<?>>) API,以允许实现通过反应式 Publisher 发送消息的消息驱动型生产者端点。更多信息,请参阅 Reactive Streams Support

AMQP 更改

outbound 通道适配器有一个新属性 multiSend,允许在一次 RabbitTemplate 调用的作用范围内发送多个消息。更多信息,请参见 AMQP Outbound Channel Adapter

现在,入站通道适配器支持 consumerBatchEnabled 属性设置为 true 的监听器容器。请参阅 AMQP 入站通道适配器

HTTP 更改

AbstractHttpRequestExecutingMessageHandler 中的 encodeUri 属性已弃用,取而代之的是新引入的 encodingMode。有关更多信息,请参阅 DefaultUriBuilderFactory.EncodingMode JavaDocs 和 控制 URI 编码。这同样影响了 WebFluxRequestExecutingMessageHandler、相应的 Java DSL 和 XML 配置。相同的选项也添加到了 AbstractWebServiceOutboundGateway 中。

Web Services 变更

已为 Web Service 组件添加了 Java DSL 支持。AbstractWebServiceOutboundGateway 上的 encodeUri 属性已弃用,取而代之的是新引入的 encodingMode——类似于上面提到的 HTTP 更改。有关更多信息,请参阅 Web Services Support

TCP 改变

FailoverClientConnectionFactory 默认情况下不再回退,直到当前连接失败。有关更多信息,请参阅 TCP 故障转移客户端连接工厂

TcpOutboundGateway 现在支持异步请求/回复。更多信息请参见 TCP 网关

你现在可以配置客户端连接以在新连接上执行一些任意测试。更多信息请参见测试连接

RSocket 更改

已将 decodeFluxAsUnit 选项添加到 RSocketInboundGateway,其含义是将传入的 Flux 解码为一个整体单元,或对其中的每个事件应用解码。更多信息,请参见 RSocket 入站网关

Zookeeper 变更

LeaderInitiatorFactoryBean(以及它的XML <int-zk:leader-listener>)暴露了一个 candidate 选项,用于更好地控制 Candidate 配置。更多信息请参见 领导事件处理

MQTT 更改

现在可以配置入站通道适配器以提供用户对何时确认消息已交付的控制。有关更多信息,请参见手动确认

outbound 适配器现在在无法创建连接或连接丢失时发布 MqttConnectionFailedEvent 事件。以前,只有 inbound 适配器这样做。请参阅 MQTT 事件

(S)FTP 更改

FileTransferringMessageHandler(用于 FTP 和 SFTP 等)除了支持 Filebyte[]StringInputStream 之外,现在还支持 org.springframework.core.io.Resource。有关更多信息,请参阅 SFTP 支持FTP 支持

文件更改

FileSplitter 不再需要 Jackson 处理器(或类似)依赖项用于 markersJson 模式。它使用 SimpleJsonSerializer 来直接表示 FileSplitter.FileMarker 实例的字符串形式。更多信息请参见 FileSplitter