新着情報

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

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

Spring Integration 6.4 の新機能

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

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

新規コンポーネント

BaseMessageBuilder クラスは、カスタムビルダー実装を簡素化するために MessageBuilder から抽出されました。この実装では、ほとんどのロジックは MessageBuilder と同じになります。詳細については、MessageBuilder を参照してください。

新しいコントロールバスインタラクションモデルは、ControlBusCommandRegistry に実装されています。非推奨の ExpressionControlBusFactoryBean の代わりに、新しい ControlBusFactoryBean クラスを使用することをお勧めします。詳細については、制御バスを参照してください。

また、前述の ControlBusCommandRegistry によって公開されたコマンドを管理するために、ControlBusController (@EnableControlBusController と共に) が導入されました。詳細については、HTTP サポートを参照してください。

SpEL 評価インフラストラクチャは、IndexAccessor の構成をサポートするようになりました。また、すぐに使用できる JsonIndexAccessor も提供されています。詳細については、SpEL サポートを参照してください。

一般的な変更

Java DSL SourcePollingChannelAdapterSpec はカスタム TaskScheduler で構成できるようになりました

リモートファイルアダプターの変更

AbstractRemoteFileStreamingMessageSource には、処理されていない リモートファイルの参照をキャッシュから削除するための便利な clearFetchedCache() API が追加されました。ポーリング構成では 1 サイクルでフェッチされたものすべてを処理できず、ターゲット SessionFactory はポーリングサイクル間で変更される可能性があるため (例: RotatingServerAdvice 経由)、参照はキャッシュに残ります。

JDBC の変更

LobHandler (およびそれぞれの API) は、Spring Framework 6.2 で削除されるため非推奨になりました。JdbcMessageStore (および同様のもの) のそれぞれのオプションも非推奨になりました。直列化されたメッセージのバイト配列の処理は、JDBC ドライバーに完全に委ねられています。

LockRepository.delete() メソッドは、分散ロックの所有権を削除した結果を返します。また、JdbcLockRegistry.JdbcLock.unlock() メソッドは、ロックの所有権が期限切れの場合に ConcurrentModificationException をスローします。詳細については、JDBC サポートを参照してください。

ZeroMQ の変更

送信 コンポーネント ZeroMqMessageHandler (およびそれぞれの API) は、指定された URL に接続する代わりに TCP ポートをバインドできるようになりました。詳細については、ZeroMQ サポートを参照してください。

Redis の変更

ロックの所有権が期限切れの場合、RedisLockRegistry.RedisLock.unlock() メソッドは IllegalStateException をスローする代わりに ConcurrentModificationException をスローします。定期的なロック更新に RedisLockRegistry.setRenewalTaskScheduler() を追加します。詳細については、Redis サポートを参照してください。

Groovy の変更

ControlBusFactoryBean (およびそれぞれの <int-groovy:control-bus> XML タグ) は非推奨 (削除のため) となり、代わりに ControlBusCommandRegistry に実装された新しいモデルに基づいて新しく導入された ControlBusFactoryBean が採用されました。詳細については、制御バスを参照してください。

SFTP サポートの変更

DefaultSftpSessionFactory は、内部の SshClient をさらにカスタマイズするための Consumer<SshClient> コンフィギュラプロパティを公開するようになりました。詳細については、SFTP セッションファクトリを参照してください。

MQTT サポートの変更

対応する ClientManager から IntegrationFlowContext を使用して、実行時に MqttPahoMessageDrivenChannelAdapter および Mqttv5PahoMessageDrivenChannelAdapter の複数のインスタンスを追加できるようになりました。また、アクションコールバックが配信の失敗に反応したときに発行される MqttMessageNotDeliveredEvent イベントも導入されました。詳細については、MQTT サポートを参照してください。

Zip サポートの変更

ZipTransformer は、ターゲット zip ファイル (およびオプションの zip エントリ) の名前生成をカスタマイズするための fileNameGenerator プロパティを公開するようになりました。詳細については、Zip サポートを参照してください。

スクリプトの変更

Python スクリプトの評価は、GraalVM Polyglot に移行されました。詳細については、スクリプトのサポートを参照してください。

メールの変更

AbstractMailReceiver は、受信したメッセージにフォールバックフラグとして Flags.Flag.FLAGGED を設定することを無効にするオプションを公開します。詳細については、メールサポートを参照してください。