|
如需使用最新稳定版本,请使用 Spring Integration 7.0.4! |
5.2 与 5.3 之间的变更
新组件
集成模式
IntegrationPattern抽象已被引入,用于指明Spring Integration组件所属的企业集成模式(即IntegrationPatternType)及类别。
有关此抽象及其用例的更多信息,请参阅其JavaDocs和集成图。
ReactiveMessageHandler
ReactiveMessageHandler 现在已在框架中原生支持。
有关更多信息,请参阅 ReactiveMessageHandler。
ReactiveMessageSourceProducer
The ReactiveMessageSourceProducer 是 MessageProducerSupport 的响应式实现,用于将提供的 MessageSource 包装为 Flux,以支持按需 receive() 调用。
有关更多信息,请参阅 响应式流支持。
Java DSL 扩展
引入了一个新的 IntegrationFlowExtension API,允许使用自定义或组合的 EIP 操作符扩展现有的 Java DSL。
此功能也可用于为任何开箱即用的 IntegrationComponentSpec 扩展引入自定义器。
有关更多信息,请参阅 DSL 扩展。
Kotlin DSL
已引入用于集成流配置的 Kotlin DSL。 有关更多信息,请参阅 Kotlin DSL 章节。
响应式请求处理器建议
提供 ReactiveRequestHandlerAdvice 以自定义来自消息处理器的 Mono 回复。
有关更多信息,请参阅 响应式建议。
消息处理建议适配器
HandleMessageAdviceAdapter 用于包装任何 MethodInterceptor,以便在 MessageHandler.handleMessage() 上应用,而不是采用默认的 AbstractReplyProducingMessageHandler.RequestHandler.handleRequestMessage() 行为。
有关更多信息,请参阅 处理消息建议。
MongoDB 响应式通道适配器
The spring-integration-mongodb模块现在为Spring Data中的响应式MongoDB驱动程序支持提供了通道适配器实现。
此外,MongoDbChangeStreamMessageProducer中还包含用于MongoDB更改流支持的响应式实现。
有关更多信息,请参阅MongoDB支持。
接收消息建议
已引入一个特殊的 ReceiveMessageAdvice,用于精确代理 MessageSource.receive() 或 PollableChannel.receive()。
有关更多信息,请参阅 智能轮询。
常规变更
网关代理默认不再代理 default 个方法。
有关更多信息,请参阅 调用 default 方法。
内部组件(例如 _org.springframework.integration.errorLogger)在集成图中表示时,现在具有缩短的名称。
有关更多信息,请参阅 集成图。
在聚合器中,当 MessageGroupProcessor 返回 Message 时,如果 sequenceDetails 与分组中第一条消息的头部匹配,则对输出消息执行 MessageBuilder.popSequenceDetails()。
有关更多信息,请参阅 聚合器编程模型。
一个新的 publishSubscribeChannel() 操作符,基于 BroadcastCapableChannel 和 BroadcastPublishSubscribeSpec,已添加到 Java DSL 中。
当我们像配置订阅者一样将子流程(sub-flows)用于以代理为后端的通道(如 SubscribableJmsChannel、SubscribableRedisChannel 等)时,这种流畅 API 具有其优势。
有关更多信息,请参阅 子流程支持。
Spring Integration 中的事务支持现在还包括选项,用于配置当 ReactiveTransactionManager 或 MessageHandler 实现产生用于发送的有效负载的反应类型时,应使用 MessageSource。
有关更多信息,请参见 TransactionInterceptorBuilder。
另请参阅 响应式事务。
Java DSL 中新增了 intercept() 操作符,用于注册 ChannelInterceptor 实例而无需创建显式通道。
有关更多信息,请参见 Operator intercept()。
MessageStoreSelector 具有新的机制来比较旧值和新值。
有关更多信息,请参阅 幂等接收器企业集成模式。
The MessageProducerSupport 基类现在拥有一个 subscribeToPublisher(Publisher<? extends Message<?>>) API,用于实现通过响应式 Publisher 发送消息的消息驱动生产者端点。
有关更多信息,请参阅 响应式流支持。
AMQP 变更
出站通道适配器新增了一个属性 multiSend,允许在一个 RabbitTemplate 调用范围内发送多条消息。
有关更多信息,请参阅 AMQP 出站通道适配器。
入站通道适配器现在支持将 consumerBatchEnabled 属性设置为 true 的监听器容器。
参见 AMQP 入站通道适配器
HTTP 变更
encodeUri属性在AbstractHttpRequestExecutingMessageHandler上已被弃用,取而代之的是新引入的encodingMode。
请参见DefaultUriBuilderFactory.EncodingMode JavaDocs 以及控制 URI 编码以获取更多信息。
此变更同样影响WebFluxRequestExecutingMessageHandler、相应的 Java DSL 和 XML 配置。
同一选项也已添加到AbstractWebServiceOutboundGateway中。
Web 服务变更
Web Service 组件已添加 Java DSL 支持。
encodeUri 属性在 AbstractWebServiceOutboundGateway 上已被弃用,转而使用新引入的 encodingMode - 类似于上述 HTTP 变更。
有关更多信息,请参阅 Web Services Support。
TCP 变更
The FailoverClientConnectionFactory 默认不再在连接失败前进行故障回退,直到当前连接失败。
有关更多信息,请参阅 TCP 故障转移客户端连接工厂。
The TcpOutboundGateway 现在支持异步请求/响应。
查看 TCP 网关 以获取更多信息。
您现在可以配置客户端连接,以在新连接上执行任意测试。 有关更多信息,请参阅测试连接。
RSocket 变更
已为 decodeFluxAsUnit 选项添加了含义,用于将传入的 Flux 作为单个单元进行解码,或对其中的每个事件应用解码。有关更多信息,请参阅 RSocket 入站网关。
Zookeeper 变更
A LeaderInitiatorFactoryBean(以及其 XML <int-zk:leader-listener>)提供了一个 candidate 选项,用于更精细地控制 Candidate 配置。
有关更多信息,请参阅 领导事件处理。
文件更改
The FileSplitter不再需要为markersJson模式依赖Jackson处理器(或类似)。
它使用SimpleJsonSerializer来提供FileSplitter.FileMarker实例的简单字符串表示。
有关更多信息,请参阅FileSplitter。