ブローカーイベントリスナー
イベント交換プラグイン (英語) が有効な場合、型 BrokerEventListener
の Bean をアプリケーションコンテキストに追加すると、選択したブローカーイベントが BrokerEvent
インスタンスとして発行されます。これは、通常の Spring ApplicationListener
または @EventListener
メソッドで使用できます。イベントは、イベント型ごとに異なるルーティングキーを使用して、ブローカーによってトピック交換 amq.rabbitmq.event
に公開されます。リスナーは、AnonymousQueue
を交換にバインドするために使用されるイベントキーを使用して、リスナーが選択されたイベントのみを受け取るようにします。これはトピック交換であるため、次の例に示すように、ワイルドカードを使用できます (特定のイベントを明示的にリクエストすることもできます)。
@Bean
public BrokerEventListener eventListener() {
return new BrokerEventListener(connectionFactory(), "user.deleted", "channel.#", "queue.#");
}
次の例に示すように、通常の Spring 手法を使用して、個々のイベントリスナーで受信したイベントをさらに絞り込むことができます。
@EventListener(condition = "event.eventType == 'queue.created'")
public void listener(BrokerEvent event) {
...
}