最新の安定バージョンについては、Spring AMQP 4.1.1 を使用してください! |
1.6 以降の 1.7 の変更点
AMQP クライアントライブラリ
Spring AMQP は、RabbitMQ チームが提供する amqp-client ライブラリの新しいバージョンである 4.0.x を使用するようになりました。このクライアントは、デフォルトで自動復旧が設定されています。RabbitMQ 自動接続 / トポロジリカバリを参照してください。
The 4.0.x client enables automatic recovery by default. While compatible with this feature, Spring AMQP has its own recovery mechanisms, and the client recovery feature generally is not needed. We recommend disabling amqp-client automatic recovery, to avoid getting AutoRecoverConnectionNotCurrentlyOpenException instances when the broker is available but the connection has not yet recovered. Starting with version 1.7.1, Spring AMQP disables it unless you explicitly create your own RabbitMQ connection factory and provide it to the CachingConnectionFactory. RabbitMQ ConnectionFactory instances created by the RabbitConnectionFactoryBean also have the option disabled by default. |
Log4j 2 アップグレード
Log4j 2 の最小バージョン ( AmqpAppender の場合) は 2.7 になりました。フレームワークは以前のバージョンと互換性がなくなりました。詳細については、ロギングサブシステム AMQP アペンダを参照してください。
Logback アペンダー
このアペンダーは、デフォルトでは呼び出し元データ (メソッド、行番号) をキャプチャーしなくなりました。includeCallerData 構成オプションを設定することで、再度有効にすることができます。利用可能なログアペンダについては、ロギングサブシステム AMQP アペンダを参照してください。
Spring Retry アップグレード
最小の Spring Retry バージョンは 1.2 になりました。フレームワークは以前のバージョンと互換性がなくなりました。
シャットダウン動作
forceCloseChannel を true に設定できるようになりました。これにより、コンテナースレッドが shutdownTimeout 内のシャットダウンに応答しない場合、チャネルが強制的に閉じられ、確認応答されていないメッセージが再キューイングされます。詳細については、メッセージリスナーコンテナーの設定を参照してください。
JUnit @Rules
以前はフレームワークによって内部的に使用されていたルールは、spring-rabbit-junit と呼ばれる別の jar で使用できるようになりました。詳細については、JUnit4 @Rules を参照してください。
コンテナーの条件付きロールバック
外部トランザクションマネージャー (JDBC など) を使用する場合、コンテナーにトランザクション属性を指定すると、ルールベースのロールバックがサポートされるようになりました。また、トランザクションアドバイスを使用する際の柔軟性も向上しました。
接続の命名方法
AbstractConnectionFactory からのターゲット RabbitMQ 接続のアプリケーション固有の ID を取り込むために、新しい ConnectionNameStrategy が提供されるようになりました。詳細については、接続とリソースの管理を参照してください。
リスナーコンテナーの変更
トランザクションのロールバック動作
トランザクションマネージャーが構成されているかどうかに関係なく、トランザクションロールバックでのメッセージの再キューイングを一貫性を保つように構成できるようになりました。詳細については、受信メッセージのロールバックに関する注意を参照してください。