新着情報

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

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

Spring Integration 7.1 の新機能

詳細については、7.1 開発プロセスの一環として解決された GitHub の課題 (英語) を参照してください。

全体的に、プロジェクトは最新の依存関係バージョンに移行しました。Java 17 は引き続きベースラインですが、Java 25 もサポートされています。

新規コンポーネント

CloudEvents サポート

CloudEvents 仕様をサポートするために、新しい spring-integration-cloudevents モジュールが導入されました。詳細については、CloudEvents サポートを参照してください。

gRPC サポート

gRPC フレームワークをサポートするために、新しい spring-integration-grpc モジュールが導入されました。詳細については、「gRPC サポート」を参照してください。

一般的な変更

MessageTransformingHandler.requiresReply フラグは変更できません。オーバーライドされた setRequiresReply() メソッドから UnsupportedOperationException がスローされ、トランスフォーマーパターンが応答に null を生成できないことを示します。詳細については、Transformer を参照してください。

メソッドレベルのアノテーション処理を制御するための新しいプロパティ spring.integration.annotations.enable が導入されました。詳細については、アノテーションサポートを参照してください。

Web サービスサポートの変更

Web サービス送信ゲートウェイは、提供されている WebServiceTemplate.defaultUri を使用できるようになりました。詳細については、Web サービスのサポートを参照してください。

サポートの変更のテスト

Class<?> 引数を持つ TestUtils.getPropertyValue() は非推奨となりました。オーバーロードメソッドの戻り値型が Object からジェネリクス引数に変更されたためです。これにより、テストロジックにおいて、抽出された値を期待される型に柔軟にキャストできるようになります。詳しくはテストサポートを参照してください。

Redis サポートの変更

RedisMessageStore.doRemove は、Redis 6.2+ のデフォルト設定で、GET + UNLINK の代わりに GETDEL を使用するようになりました。アトミック性が不要で、GETDEL を使用すると Redis の遅延が顕著になる場合は、RedisMessageStore.setUseUnlink(true) を使用して GET + UNLINK を使用してください。Redis モジュールは、専用の org.springframework.integration.redis.dsl.Redis ファクトリを介して Java DSL API を提供するようになりました。RedisLockRegistry は、ロックの更新と解放 (Redis 8.4+) にネイティブの Redis CAS/CAD コマンドを使用するようになり、古い Redis バージョンでは Lua スクリプトへの自動フォールバックが行われます。詳細については、Redis サポートを参照してください。

JMS サポートの変更

JMS ベースのメッセージチャネルは、ヘッダーを JMS メッセージプロパティにマッピングし、その逆も可能にしました。詳しくは JMS サポートを参照してください。

JMS DSL では、ユーザーが JmsTemplate を設定できるようになりました。外部の JmsTemplate を使用する場合は、DSL がデフォルトの JmsTemplate の設定しかできないため、設定前に JmsTemplate を設定しておく必要があります。

HTTP サポートの変更

HttpRequestExecutingMessageHandler (その XML および Java DSL)は、RestClient と併用できるようになりました。RestTemplate の設定は非推奨です。詳細については、HTTP サポートを参照してください。

MQTT の変更

byte[] または String 以外のペイロードの場合、Mqttv5PahoMessageHandler は、fromMessage() 経由ではなく、toMessage() 経由で構成済みの MessageConverter に変換を委譲するようになりました。Mqttv5PahoMessageDrivenChannelAdapter は、fromMessage() 経由で、受信 payloadType の変換を構成済みの SmartMessageConverter に委譲するようになりました。これは、以前の逆メソッド呼び出しに依存していたカスタム MQTT v5 コンバーターにとって互換性のない変更ですが、両方のチャネルアダプターを Spring メッセージングコンバーター契約に整合させます。詳細については、MQTT サポートを参照してください。