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 擴充套件引入自定義器。有關更多資訊,請參見 DSL 擴充套件。
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 例項的直接字串。有關更多資訊,請參見 FileSplitter。