新着情報
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
低カーディナリティタグの handler
、message-source
、message-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
に基づいて十分に古くないファイルのみを受け入れるように導入されました。対応する実装は RecentFileListFilter
、FtpRecentFileListFilter
、SftpRecentFileListFilter
、SmbRecentFileListFilter
です。詳細についてはファイルを読むを参照してください。
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 サポートを参照してください。