如需使用最新稳定版本,请使用 Spring Integration 7.0.4spring-doc.cadn.net.cn

5.2 与 5.3 之间的变更

新组件

集成模式

IntegrationPattern抽象已被引入,用于指明Spring Integration组件所属的企业集成模式(即IntegrationPatternType)及类别。 有关此抽象及其用例的更多信息,请参阅其JavaDocs和集成图spring-doc.cadn.net.cn

ReactiveMessageHandler

ReactiveMessageHandler 现在已在框架中原生支持。 有关更多信息,请参阅 ReactiveMessageHandlerspring-doc.cadn.net.cn

ReactiveMessageSourceProducer

The ReactiveMessageSourceProducerMessageProducerSupport 的响应式实现,用于将提供的 MessageSource 包装为 Flux,以支持按需 receive() 调用。 有关更多信息,请参阅 响应式流支持spring-doc.cadn.net.cn

Java DSL 扩展

引入了一个新的 IntegrationFlowExtension API,允许使用自定义或组合的 EIP 操作符扩展现有的 Java DSL。 此功能也可用于为任何开箱即用的 IntegrationComponentSpec 扩展引入自定义器。 有关更多信息,请参阅 DSL 扩展spring-doc.cadn.net.cn

Kotlin DSL

已引入用于集成流配置的 Kotlin DSL。 有关更多信息,请参阅 Kotlin DSL 章节spring-doc.cadn.net.cn

响应式请求处理器建议

提供 ReactiveRequestHandlerAdvice 以自定义来自消息处理器的 Mono 回复。 有关更多信息,请参阅 响应式建议spring-doc.cadn.net.cn

消息处理建议适配器

HandleMessageAdviceAdapter 用于包装任何 MethodInterceptor,以便在 MessageHandler.handleMessage() 上应用,而不是采用默认的 AbstractReplyProducingMessageHandler.RequestHandler.handleRequestMessage() 行为。 有关更多信息,请参阅 处理消息建议spring-doc.cadn.net.cn

MongoDB 响应式通道适配器

The spring-integration-mongodb模块现在为Spring Data中的响应式MongoDB驱动程序支持提供了通道适配器实现。 此外,MongoDbChangeStreamMessageProducer中还包含用于MongoDB更改流支持的响应式实现。 有关更多信息,请参阅MongoDB支持spring-doc.cadn.net.cn

接收消息建议

已引入一个特殊的 ReceiveMessageAdvice,用于精确代理 MessageSource.receive()PollableChannel.receive()。 有关更多信息,请参阅 智能轮询spring-doc.cadn.net.cn

常规变更

网关代理默认不再代理 default 个方法。 有关更多信息,请参阅 调用 default 方法spring-doc.cadn.net.cn

内部组件(例如 _org.springframework.integration.errorLogger)在集成图中表示时,现在具有缩短的名称。 有关更多信息,请参阅 集成图spring-doc.cadn.net.cn

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

一个新的 publishSubscribeChannel() 操作符,基于 BroadcastCapableChannelBroadcastPublishSubscribeSpec,已添加到 Java DSL 中。 当我们像配置订阅者一样将子流程(sub-flows)用于以代理为后端的通道(如 SubscribableJmsChannelSubscribableRedisChannel 等)时,这种流畅 API 具有其优势。 有关更多信息,请参阅 子流程支持spring-doc.cadn.net.cn

Spring Integration 中的事务支持现在还包括选项,用于配置当 ReactiveTransactionManagerMessageHandler 实现产生用于发送的有效负载的反应类型时,应使用 MessageSource。 有关更多信息,请参见 TransactionInterceptorBuilder。 另请参阅 响应式事务spring-doc.cadn.net.cn

Java DSL 中新增了 intercept() 操作符,用于注册 ChannelInterceptor 实例而无需创建显式通道。 有关更多信息,请参见 Operator intercept()spring-doc.cadn.net.cn

MessageStoreSelector 具有新的机制来比较旧值和新值。 有关更多信息,请参阅 幂等接收器企业集成模式spring-doc.cadn.net.cn

The MessageProducerSupport 基类现在拥有一个 subscribeToPublisher(Publisher<? extends Message<?>>) API,用于实现通过响应式 Publisher 发送消息的消息驱动生产者端点。 有关更多信息,请参阅 响应式流支持spring-doc.cadn.net.cn

AMQP 变更

出站通道适配器新增了一个属性 multiSend,允许在一个 RabbitTemplate 调用范围内发送多条消息。 有关更多信息,请参阅 AMQP 出站通道适配器spring-doc.cadn.net.cn

入站通道适配器现在支持将 consumerBatchEnabled 属性设置为 true 的监听器容器。 参见 AMQP 入站通道适配器spring-doc.cadn.net.cn

HTTP 变更

encodeUri属性在AbstractHttpRequestExecutingMessageHandler上已被弃用,取而代之的是新引入的encodingMode。 请参见DefaultUriBuilderFactory.EncodingMode JavaDocs 以及控制 URI 编码以获取更多信息。 此变更同样影响WebFluxRequestExecutingMessageHandler、相应的 Java DSL 和 XML 配置。 同一选项也已添加到AbstractWebServiceOutboundGateway中。spring-doc.cadn.net.cn

Web 服务变更

Web Service 组件已添加 Java DSL 支持。 encodeUri 属性在 AbstractWebServiceOutboundGateway 上已被弃用,转而使用新引入的 encodingMode - 类似于上述 HTTP 变更。 有关更多信息,请参阅 Web Services Supportspring-doc.cadn.net.cn

TCP 变更

The FailoverClientConnectionFactory 默认不再在连接失败前进行故障回退,直到当前连接失败。 有关更多信息,请参阅 TCP 故障转移客户端连接工厂spring-doc.cadn.net.cn

The TcpOutboundGateway 现在支持异步请求/响应。 查看 TCP 网关 以获取更多信息。spring-doc.cadn.net.cn

您现在可以配置客户端连接,以在新连接上执行任意测试。 有关更多信息,请参阅测试连接spring-doc.cadn.net.cn

RSocket 变更

已为 decodeFluxAsUnit 选项添加了含义,用于将传入的 Flux 作为单个单元进行解码,或对其中的每个事件应用解码。有关更多信息,请参阅 RSocket 入站网关spring-doc.cadn.net.cn

Zookeeper 变更

A LeaderInitiatorFactoryBean(以及其 XML <int-zk:leader-listener>)提供了一个 candidate 选项,用于更精细地控制 Candidate 配置。 有关更多信息,请参阅 领导事件处理spring-doc.cadn.net.cn

MQTT 变更

入站通道适配器现在可以配置为允许用户控制消息何时被确认为已交付。 有关更多信息,请参阅 手动确认spring-doc.cadn.net.cn

出站适配器现在在无法创建连接或连接丢失时会发布MqttConnectionFailedEvent。 此前,只有入站适配器会这样做。 请参阅MQTT 事件spring-doc.cadn.net.cn

(S)FTP 变更

The FileTransferringMessageHandler(例如用于 FTP 和 SFTP)现在除了支持 Filebyte[]StringInputStream 外,还支持 org.springframework.core.io.Resource。 请参见 SFTP 支持FTP 支持 以获取更多信息。spring-doc.cadn.net.cn

文件更改

The FileSplitter不再需要为markersJson模式依赖Jackson处理器(或类似)。 它使用SimpleJsonSerializer来提供FileSplitter.FileMarker实例的简单字符串表示。 有关更多信息,请参阅FileSplitterspring-doc.cadn.net.cn