此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring AMQP 3.2.6spring-doc.cadn.net.cn

代理事件侦听器

启用 Event Exchange 插件时,如果添加类型为BrokerEventListener到应用程序上下文,它将选定的代理事件发布为BrokerEvent实例,可以与普通 Spring 一起使用ApplicationListener@EventListener方法。 事件由代理发布到主题交换amq.rabbitmq.event为每种事件类型使用不同的路由键。 侦听器使用事件键,用于绑定AnonymousQueue到交换,以便侦听器仅接收选定的事件。 由于它是一个主题交换,因此可以使用通配符(以及显式请求特定事件),如以下示例所示:spring-doc.cadn.net.cn

@Bean
public BrokerEventListener eventListener() {
    return new BrokerEventListener(connectionFactory(), "user.deleted", "channel.#", "queue.#");
}

您可以使用普通的 Spring 技术进一步缩小单个事件侦听器中接收到的事件范围,如以下示例所示:spring-doc.cadn.net.cn

@EventListener(condition = "event.eventType == 'queue.created'")
public void listener(BrokerEvent event) {
    ...
}