代理事件监听器

事件交换机插件 启用时,如果你向应用程序上下文添加一个 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) {
    ...
}