1.1 以降の 1.2 への変更

RabbitMQ バージョン

Spring AMQP はデフォルトで RabbitMQ 3.1.x を使用するようになりました (ただし、以前のバージョンとの互換性は保持されます)。RabbitMQ 3.1.x でサポートされなくなった機能 (連携交換と RabbitTemplate の immediate プロパティ) に対して、特定の非推奨が追加されました。

Rabbit 管理者

RabbitAdmin は、宣言が失敗したときに、交換、キュー、バインドの宣言を続行できるようにするオプションを提供するようになりました。以前は、失敗するとすべての宣言が停止していました。ignore-declaration-exceptions を設定すると、そのような例外は (WARN レベルで) ログに記録されますが、その後の宣言は続行されます。これが役立つ可能性がある例は、通常は他の宣言の進行を停止するわずかに異なる ttl 設定が原因で、キュー宣言が失敗した場合です。

RabbitAdmin は、getQueueProperties() と呼ばれる追加のメソッドを提供するようになりました。これを使用して、ブローカーにキューが存在するかどうかを判別できます (存在しないキューに対して null を返します)。さらに、キュー内の現在のメッセージ数と現在のコンシューマー数を返します。

Rabbit テンプレート

以前は、固定応答キューで …​sendAndReceive() メソッドが使用された場合、2 つのカスタムヘッダーが相関データ用に使用され、応答キュー情報を保持および復元していました。このリリースでは、代わりに使用するカスタムプロパティを指定できますが、標準のメッセージプロパティ (correlationId) がデフォルトで使用されます。さらに、ネストされた replyTo 情報は、カスタムヘッダーを使用する代わりに、テンプレート内で内部的に保持されるようになりました。

immediate プロパティは非推奨です。RabbitMQ 3.0.x 以上を使用する場合は、このプロパティを設定しないでください。

JSON メッセージコンバーター

Jackson 1.x を使用する既存のコンバーターに加えて、Jackson 2.x MessageConverter が提供されるようになりました。

キューおよびその他のアイテムの自動宣言

以前は、キュー、エクスチェンジ、バインディングを宣言するときに、宣言に使用された接続ファクトリを定義できませんでした。各 RabbitAdmin は、その接続を使用してすべてのコンポーネントを宣言しました。

このリリース以降、宣言を特定の RabbitAdmin インスタンスに制限できるようになりました。条件宣言を参照してください。

AMQP リモーティング

RPC 呼び出しのトランスポートとして AMQP を使用して、Spring リモート処理技術を使用するための機能が提供されるようになりました。詳細については、[ リモート ] を参照してください。

リクエストされたハートビート

何人かのユーザーが、基礎となるクライアント接続ファクトリの requestedHeartBeats プロパティを Spring AMQP CachingConnectionFactory で公開するよう求めてきました。これが利用可能になりました。以前は、AMQP クライアントファクトリを個別の Bean として構成し、それへの参照を CachingConnectionFactory で提供する必要がありました。