2017-03-25 15 views
1

私はspring-bootとspring-rabbitmqを使用しています。私の接続工場はapplication.propertiesに設定されていて、それはいいと思われます。spring-rabbitmqでキューに接続するか作成しないでください

私の目的はです。特定の名前であれば存在するかどうかをチェックし、存在しない場合はそのようなキューを作成します。私はそれに対処する方法がわかりません。 configクラスでどんな豆を作るべきですか?私が読んだところではRabbitAdminになるはずですが、私はそれについては分かりません。手伝って頂けますか?

答えて

1

すべてがReference Manualに明確に説明されています

AMQP仕様は、プロトコルがブローカーにキュー、交流とバインドを設定するために使用する方法について説明します。 0.8以上の仕様から移植可能なこれらの操作は、org.springframework.amqp.coreパッケージのAmqpAdminインタフェースにあります。

、さらに:

CachingConnectionFactoryキャッシュモードはCHANNEL(デフォルト)である場合には、RabbitAdmin実装が同じApplicationContextの中で宣言キュー、交流とバインドの自動怠惰な宣言を行います。

だから、あなたはあなたのアプリケーションのコンテキストでQueueExchangeBinding豆を宣言すべきであるとAmqpAdminは、ターゲットブローカにその定義についての世話をします。

AMQPプロトコルによれば、エンティティが既にブローカ上に存在する場合、宣言は静かで冪等であるという注意が必要です。

したがって、あなたの場合、キューの存在を心配する必要はなく、宣言をアプリケーションコンテキストでBeanとして提供するだけです。

+0

驚くべきことに、spring-amqpは素晴らしく、すべてのデフォルト設定が妥当で、設定が簡単です。 –

関連する問題