Broker 事件监听器

启用 事件交换插件 后,如果将类型为 BrokerEventListener 的 Bean 添加到应用程序上下文中,它会将选定的 Broker 事件发布为 BrokerEvent 实例,这些实例可以通过普通的 Spring ApplicationListener@EventListener 方法使用。事件由 Broker 发布到主题交换 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) {
    ...
}