5.5 および 6.0 間の変更

新規コンポーネント

統合フロー定義の Groovy DSL 実装が追加されました。詳細については、Groovy DSL を参照してください。

MQTT ClientManager

さまざまなチャネルアダプター間で再利用可能な MQTT 接続をサポートするために、新しい MQTT ClientManager が追加されました。詳細については、共有 MQTT クライアントのサポートを参照してください。

GraphQL のサポート

GraphQL のサポートが追加されました。詳細については、GraphQL のサポートを参照してください。

Apache Camel サポート

Apache Camel ルートのサポートが導入されました。詳細については、"Apache Camel サポート" を参照してください。

Hazelcast サポート

Hazelcast Spring Integration Extensions プロジェクトは、spring-integration-hazelcast モジュールとして移行されました。詳細については、Hazelcast サポートを参照してください。

SMB サポート

Spring Integration Extensions プロジェクトから SMB サポートが追加されました。Java DSL (org.springframework.integration.smb.dsl.Smb factory を参照) もこのモジュールに追加されました。SmbStreamingMessageSource と SmbOutboundGateway の実装が導入されました。詳細については、SMB サポートを参照してください。

PostgreSQL プッシュ通知

PostgresSubscribableChannel は、新しいメッセージが JdbcChannelMessageStore に追加されると、PostgresChannelMessageTableSubscriber を介してプッシュ通知を受信できるようにします。

詳細については、PostgreSQL: プッシュ通知の受信を参照してください。

RabbitMQ ストリームキューのサポート

AMQP モジュールが拡張され、RabbitMQ ストリームキューを使用した受信および送信チャネルアダプターのサポートが提供されるようになりました。詳細については、RabbitMQ ストリームキューのサポートを参照してください。

Apache MINA SFTP

SFTP モジュールは、古い JCraft JSch ライブラリから、Apache MINA プロジェクトのより堅牢で最新の org.apache.sshd:sshd-sftp モジュールに完全に作り直されました。

詳細については、SFTP アダプターを参照してください。

Micrometer Observation

タイマーの監視と Micrometer を使用したトレースの有効化がサポートされるようになりました。詳細については、Micrometer Observation を参照してください。

GraalVM Polyglot サポート

Scripting モジュールは、GraalVM Polyglot サポートに基づく PolyglotScriptExecutor 実装を提供するようになりました。JavaScript のサポートは、JSR223 実装が Java 自体から削除されたため、このエグゼキューターに基づいています。詳細については、スクリプトのサポートを参照してください。

Apache Cassandra サポート

Apache Cassandra Spring Integration Extensions プロジェクトは、spring-integration-cassandra モジュールとして移行されました。詳細については、Apache Cassandra サポートを参照してください。

Kotlin コルーチン

Kotlin コルーチンのサポートがフレームワークに導入されました。

詳細については、Kotlin コルーチンを参照してください。

ネイティブイメージ

GraalVM ネイティブイメージの作成がサポートされます。詳細については、ネイティブイメージのサポートを参照してください。

一般的な変更

メッセージングアノテーションは @Repeatable になり、同じ型を同じサービスメソッドで複数回宣言できます。メッセージングアノテーションは、@Poller の配列として poller 属性を必要としなくなりました。

詳細については、アノテーションサポートを参照してください。

便宜上、RecipientListRouter に基づく Scatter-Gather 用の XML および Java DSL は applySequence = true を設定するようになったため、Gatherer 部分はデフォルトの相関戦略に依存できます。

詳細については、スキャッターギャザーを参照してください。

AbstractMappingMessageRouter には、もう 1 つの便利な動作変更が加えられました。現在、defaultOutputChannel を設定すると、channelKeyFallback プロパティも false にリセットされるため、キーからチャネルを解決しようとする試みは行われませんが、ロジックはすぐにメッセージを defaultOutputChannel に送信するようにフォールバックします。

詳細については、ルーターオプションを参照してください。

AggregatingMessageHandler は、出力で MessageGroupProcessor の Collection<Message<?>> 結果を分割しませんが (それが SimpleMessageGroupProcessor でない限り)、このコレクション全体をペイロードとして含む単一のメッセージを発行します。

詳細については、アグリゲーターを参照してください。

IntegrationFlows ファクトリは、IntegrationFlow インターフェース自体で利用可能な流れるような API を推奨して非推奨としてマークされました。factory クラスは、将来のリリースで削除される予定です。

詳細については、Java DSL を参照してください。

org.springframework.util.concurrent.ListenableFuture は、Spring Framework 6.0 から非推奨になりました。すべての Spring Integration 非同期 API は CompletableFuture に移行されました。

メッセージングゲートウェイインターフェースメソッドは、ダウンストリームフローの適切な非同期実行で Future<Void> および Mono<Void> を返すことができるようになりました。

@MessagingGateway アノテーションと一緒に、インターフェースを @Primary でマークすることもできます。

@MessagingGateway インターフェースは、設定用の @Import リソースとして使用できるようになりました。

ゲートウェイプロキシ Bean のデフォルトの命名戦略は、@IntegrationComponentScan.nameGenerator() 属性を介してカスタマイズできます。AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR Bean が存在する場合、そうでない場合は AnnotationBeanNameGenerator にフォールバックする前に参照されます。

詳細については、メッセージングゲートウェイを参照してください。

integrationGlobalProperties Bean は、フレームワークによって、以前に廃止された java.util.Properties の代わりに org.springframework.integration.context.IntegrationProperties のインスタンスとして宣言されるようになりました。

応答としてコレクションを生成するメッセージハンドラー (例: JpaOutboundGatewayJdbcOutboundGateway およびその他の DB ベースのゲートウェイ) は、クエリによってレコードが返されない場合、空の結果リストを返すようになりました。以前は、requiresReply に応じて、フローを終了するか、例外をスローして、null が返されました。

RMI の削除

spring-integration-rmi モジュールは、以前のバージョンで非推奨になった後、完全に削除されました。代替はありません。WebSockets、RSockets、gRPC、REST などのより安全なネットワークおよびアプリケーションプロトコルに移行することをお勧めします。

GemFire の取り外し

VMware GemFire または Apache Geode には Spring Data 2022.0.0 のサポートがないため、spring-integration-gemfire モジュールは完全に削除されました。

HTTP の変更

HttpRequestHandlingEndpointSupport で公開されている式評価コンテキストの #cookies 変数は、クライアントによって設定された Cookie のすべての値を保持する MultiValueMap になりました。詳細については、HTTP サポートを参照してください。

Apache Kafka の変更

受信・ゲートウェイまたはメッセージ駆動型チャネルアダプターで RetryTemplate を提供する場合、errorChannel も提供されると、ErrorMessageSendingRecoverer が自動的に構成されます。

さらに、新しい KafkaErrorMessageSendingRecoverer が提供されます。これを DefaultErrorHandler で使用すると、パーティションのリバランスを引き起こす長い集約再試行遅延の課題を回避できます。

詳細については、Spring for Apache Kafka サポートを参照してください。

JDBC の変更

アプリケーションコンテキストからのプライマリ Bean に依存する代わりに、DefaultLockRepository に PlatformTransactionManager を提供できるようになりました。

詳細については、JDBC ロックレジストリを参照してください。

TCP/IP の変更

AbstractConnectionFactory および DatagramPacketMessageMapper の lookupHost プロパティは、DNS が構成されていない環境での遅延を回避するために、デフォルトで false に設定されるようになりました。

詳細については、TCP および UDP のサポートを参照してください。

JMS の変更

replyPubSubDomain オプションが true に設定されている場合、JmsOutboundGateway は TemporaryQueue の代わりに TemporaryTopic を作成するようになりました。

詳細については、JMS サポートを参照してください。

セキュリティの変更

ChannelSecurityInterceptor とそのアノテーション @SecuredChannel および XML <secured-channels> 構成は、AuthorizationChannelInterceptor を推奨して廃止されました。

詳細については、セキュリティサポートを参照してください。

Webflux リクエスト属性のサポート

Webclient Request 属性のサポートが WebFluxRequestExecutingMessageHandler に追加されました。

詳細については、WebFlux リクエスト属性を参照してください。