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