ブローカーイベントリスナー

イベント交換プラグイン (英語) が有効な場合、型 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) {
    ...
}