5.2 および 5.3 間の変更
新規コンポーネント
統合パターン
IntegrationPattern
抽象化が導入され、Spring Integration コンポーネントが属するエンタープライズ統合パターン(IntegrationPatternType
)およびカテゴリを示します。この抽象化とその使用例の詳細については、JavaDocs および統合グラフを参照してください。
ReactiveMessageHandler
ReactiveMessageHandler
がフレームワークでネイティブにサポートされるようになりました。詳細については、ReactiveMessageHandler を参照してください。
ReactiveMessageSourceProducer
ReactiveMessageSourceProducer
は、オンデマンドの receive()
呼び出しのために、提供された MessageSource
を Flux
にラップする MessageProducerSupport
のリアクティブな実装です。詳細については、Reactive Streams サポートを参照してください。
Java DSL 拡張
新しい IntegrationFlowExtension
API が導入され、カスタムまたは構成された EIP オペレーターで既存の Java DSL を拡張できるようになりました。これは、すぐに使える IntegrationComponentSpec
拡張機能のカスタマイザを導入するためにも使用できます。詳細については、DSL 拡張を参照してください。
Kotlin DSL
統合フロー構成用の Kotlin DSL が導入されました。詳細については、Kotlin DSL の章を参照してください。
ReactiveRequestHandlerAdvice
ReactiveRequestHandlerAdvice
は、メッセージハンドラーからの Mono
応答をカスタマイズするために提供されています。詳細については、リアクティブアドバイスを参照してください。
HandleMessageAdviceAdapter
HandleMessageAdviceAdapter
は、デフォルトの AbstractReplyProducingMessageHandler.RequestHandler.handleRequestMessage()
の動作ではなく、MethodInterceptor
をラップして MessageHandler.handleMessage()
に適用するために提供されています。詳細については、メッセージアドバイスの処理を参照してください。
MongoDB Reactive Channel Adapters
spring-integration-mongodb
モジュールは、Spring Data の Reactive MongoDb ドライバーサポート用のチャネルアダプター実装を提供するようになりました。また、MongoDb 変更ストリームサポートのリアクティブ実装が MongoDbChangeStreamMessageProducer
に存在します。詳細については、MongoDB サポートを参照してください。
ReceiveMessageAdvice
MessageSource.receive()
または PollableChannel.receive()
を正確にプロキシするために、特別な ReceiveMessageAdvice
が導入されました。詳細については、スマートポーリングを参照してください。
一般的な変更
ゲートウェイプロキシは、デフォルトで default
メソッドをプロキシしないようになりました。詳細については、default
メソッドの呼び出しを参照してください。
内部コンポーネント(_org.springframework.integration.errorLogger
など)は、統合グラフで表されるときに短縮された名前を持つようになりました。詳細については、統合グラフを参照してください。
アグリゲーターでは、MessageGroupProcessor
が Message
を返すときに、sequenceDetails
がグループの最初のメッセージのヘッダーと一致する場合、出力メッセージに対して MessageBuilder.popSequenceDetails()
が実行されます。詳細については、アグリゲータープログラミングモデルを参照してください。
BroadcastCapableChannel
および BroadcastPublishSubscribeSpec
に基づく新しい publishSubscribeChannel()
オペレーターが Java DSL に追加されました。この流れるような API は、SubscribableJmsChannel
や SubscribableRedisChannel
などのブローカーが支援するチャネルのサブフローを pub-sub サブスクライバーとして構成するときに利点があります。詳細については、サブフローのサポートを参照してください。
Spring Integration のトランザクションサポートには、MessageSource
または MessageHandler
の実装が送信するペイロードのリアクティブ型を作成する場合に、ReactiveTransactionManager
を構成するオプションも含まれています。詳細については、TransactionInterceptorBuilder
を参照してください。リアクティブトランザクションも参照してください。
明示的なチャネルを作成せずに ChannelInterceptor
インスタンスを登録するための新しい intercept()
オペレーターが Java DSL に追加されました。詳細については、オペレーター intercept() を参照してください。
MessageStoreSelector
には、古い値と新しい値を比較する新しいメカニズムがあります。詳細については、べき等レシーバーエンタープライズ統合パターンを参照してください。
MessageProducerSupport
基本クラスに subscribeToPublisher(Publisher<? extends Message<?>>)
API が追加され、リアクティブ Publisher
を介してメッセージを送信するメッセージ駆動型プロデューサーエンドポイントを実装できるようになりました。詳細については、Reactive Streams サポートを参照してください。
AMQP の変更
送信チャネルアダプターには新しいプロパティ multiSend
があり、1 つの RabbitTemplate
呼び出しのスコープ内で複数のメッセージを送信できます。詳細については、AMQP 送信チャネルアダプターを参照してください。
受信チャネルアダプターは、consumerBatchEnabled
プロパティが true
に設定されたリスナーコンテナーをサポートするようになりました。AMQP 受信チャネルアダプターを参照
HTTP の変更
AbstractHttpRequestExecutingMessageHandler
の encodeUri
プロパティは、新しく導入された encodingMode
のために廃止されました。詳細については、DefaultUriBuilderFactory.EncodingMode
JavaDocs および URI エンコードの制御を参照してください。これは、WebFluxRequestExecutingMessageHandler
、それぞれの Java DSL および XML 構成にも影響します。同じオプションが AbstractWebServiceOutboundGateway
に追加されました。
Web サービスの変更
Web サービスコンポーネントに Java DSL サポートが追加されました。AbstractWebServiceOutboundGateway
の encodeUri
プロパティは、上記の HTTP の変更と同様に、新しく導入された encodingMode
のために廃止されました。詳細については、Web サービスのサポートを参照してください。
TCP の変更
FailoverClientConnectionFactory
は、現在の接続が失敗するまで、デフォルトでフェールバックしなくなりました。詳細については、TCP フェールオーバークライアント接続ファクトリを参照してください。
TcpOutboundGateway
は非同期のリクエスト / 応答をサポートするようになりました。詳細については、TCP ゲートウェイを参照してください。
これで、新しい接続で任意のテストを実行するようにクライアント接続を構成できます。詳細については、接続をテストを参照してください。
RSocket の変更
RSocketInboundGateway
に decodeFluxAsUnit
オプションが追加されました。これは、受信 Flux
を単一のユニットとしてデコードするか、その中の各イベントにデコードを適用することを意味します。詳細については、RSocket 受信ゲートウェイを参照してください。
Zookeeper の変更
LeaderInitiatorFactoryBean
(およびその XML <int-zk:leader-listener>
)は、Candidate
構成をより詳細に制御するための candidate
オプションを公開します。詳細については、リーダーシップイベントの取り扱いを参照してください。
ファイルの変更
markersJson
モードでは、FileSplitter
は Jackson プロセッサー(または同様の)依存関係を必要としません。FileSplitter.FileMarker
インスタンスの簡単な文字列表現に SimpleJsonSerializer
を使用します。詳細については、FileSplitter を参照してください。