新着情報

Spring Integration にすでに精通している方のために、この章ではバージョン 6.5 の新機能の概要を簡単に説明します。

以前のバージョンで導入された変更と機能に興味がある場合は、変更履歴を参照してください。

Spring Integration 6.5 の新機能

詳細に興味がある場合は、6.5 開発プロセスの一部として解決された課題トラッカーチケットを参照してください。

一般に、プロジェクトは最新の依存関係バージョンに移動されました。

一般的な変更

以前非推奨だった org.springframework.util.concurrent.ListenableFuture の使用は削除され、代わりに CompletableFuture が採用されました。

以前非推奨だった SpEL ベースのコントロールバスコンポーネントは、ControlBusCommandRegistry 関連の機能を優先して削除されました。<control-bus use-registry=""> 属性は、ControlBusCommandRegistry 機能のみが使用可能であるため、代替なしで非推奨になりました。Java DSL controlBusOnRegistry() 演算子は、ControlBusCommandRegistry に完全に基づく復元された controlBus() を優先して非推奨になりました。詳細については、制御バスを参照してください。

AbstractCorrelatingMessageHandler は、MessageGroupProcessor の結果としてのペイロードのコレクションに対して IllegalArgumentException をスローしません。代わりに、そのようなコレクションは単一の応答メッセージにラップされます。詳細については、アグリゲーターを参照してください。

実行されていないアプリケーションにメッセージを送信しようとすると、AbstractMessageChannel Bean は特別な MessageDispatchingException をスローするようになりました。一般に、afterPropertiesSet()@PostConstruct、Bean 定義メソッドからメッセージを生成しようとするのは設計エラーです。この種のロジックには SmartLifecycle.start() が推奨される方法ですが、受信チャネルアダプター経由で行う方が適切です。

Java DSL gateway() 演算子が async(true) 動作を完全にサポートするようになりました。詳しくはメッセージングゲートウェイを参照してください。

LockRequestHandlerAdvice

メッセージハンドラー呼び出しのリクエストメッセージに基づいてキーのロックを保持するための新しい LockRequestHandlerAdvice が導入されました。詳細については、エンドポイントへの動作の追加を参照してください。

相関ハンドラーの discardIndividuallyOnExpiry オプション

アグリゲータとリシーケンサは、discardIndividuallyOnExpiry を false に設定することで、期限切れのグループ全体を 1 つのメッセージとして破棄できるようになりました。詳細については、ReleaseStrategy を参照してください。

MessageStore の LockRegistry 

AbstractMessageGroupStore は、LockRegistry を使用して構成し、一連の永続的な操作をアトミックに実行できるようになりました。詳細については、LockRegistry を使用するを参照してください。

Micrometer 観測の変化

SourcePollingChannelAdapter エンドポイントは、受信したメッセージに対して CONSUMER 種類の観測を開始します。MessageReceiverContext は、spring.integration.type 低カーディナリティタグの handlermessage-sourcemessage-producer 値を区別するようになりました。詳細については、Micrometer Observation を参照してください。

オプションの Paho MQTT 依存関係

spring-integration-mqtt に対する org.eclipse.paho:org.eclipse.paho.client.mqttv3 の依存関係も、org.eclipse.paho:org.eclipse.paho.mqttv5.client が常にオプションであったのと同様に、現在はオプションです。詳細については、MQTT サポートを参照してください。

Apache Kafka サポートの変更

KafkaMessageSource および KafkaMessageDrivenChannelAdapter は、Spring Integration チャネルアダプターの残りの部分と同様に、デフォルトで MessageHeaders.ID および MessageHeaders.TIMESTAMP ヘッダーを生成するようになりました。デフォルト設定で MessagingMessageConverter を挿入すると、動作を以前の状態に戻すことができます。詳細については、Apache Kafka サポートを参照してください。

最近使用したファイルフィルターのサポート

AbstractRecentFileListFilter 戦略は、提供されている age に基づいて十分に古くないファイルのみを受け入れるように導入されました。対応する実装は RecentFileListFilterFtpRecentFileListFilterSftpRecentFileListFilterSmbRecentFileListFilter です。詳細についてはファイルを読むを参照してください。

FileExistsMode 式サポート

リモートファイルゲートウェイ(AbstractRemoteFileOutboundGateway)は、SpEL 式を介して実行時に FileExistsMode を動的に解決できるようになりました。詳細については、リモートファイルゲートウェイを参照してください。

Hazelcast モジュールの廃止

Hazelcast CP サブシステムの Enterprise エディションへの移行に伴い、HazelcastLockRegistry および Hazelcast LeaderInitiator は廃止されました。詳細については、Hazelcast サポートを参照してください。

JDBC サポート

BeanPropertySqlParameterSourceFactory は、入力が Map の場合、内部的に MapSqlParameterSource を使用するようになりました。また、JdbcMessageHandler は、メッセージペイロードに対してのみパラメーターソースを処理できるように、usePayloadAsParameterSource フラグを公開しています。前述の MapSqlParameterSource は、マップペイロードを含むリクエストメッセージで役立ちます。詳細については、JDBC サポートを参照してください。

Redis ストリームのサポート

ReactiveRedisStreamMessageHandler は Function<Message<?>, RedisStreamCommands.XAddOptions> を公開し、便利な RedisStreamCommands.XAddOptions API を介して XADD の追加オプションを提供します。詳細については Redis サポートを参照してください。