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 オプションを公開します。詳細については、リーダーシップイベントの取り扱いを参照してください。

MQTT の変更

受信チャネルアダプターを構成して、メッセージが配信されたことを確認するタイミングをユーザーが制御できるようになりました。詳細については、手動 ACK を参照してください。

接続を作成できない場合、または接続が失われた場合、送信アダプターが MqttConnectionFailedEvent を公開するようになりました。以前は、受信アダプターのみがそうしていました。MQTT イベントを参照してください。

(S)FTP の変更

Filebyte[]StringInputStream に加えて FileTransferringMessageHandler (FTP や SFTP など)も org.springframework.core.io.Resource をサポートするようになりました。詳細については、SFTP サポートおよび FTP サポートを参照してください。

ファイルの変更

markersJson モードでは、FileSplitter は Jackson プロセッサー(または同様の)依存関係を必要としません。FileSplitter.FileMarker インスタンスの簡単な文字列表現に SimpleJsonSerializer を使用します。詳細については、FileSplitter を参照してください。