此版本仍在开发中,目前尚不稳定。如需最新稳定版本,请使用 Spring AMQP 4.0.2spring-doc.cadn.net.cn

经纪人事件监听器

当启用 事件交换插件 时,如果您向应用上下文添加一个类型为 BrokerEventListener 的 Bean,则会将选定的代理事件作为 BrokerEvent 实例发布出去,这些实例可使用常规的 Spring ApplicationListener@EventListener 方法进行消费。代理会将事件发布到一个主题交换(topic exchange)amq.rabbitmq.event,并为每种事件类型使用不同的路由键(routing key)。监听器使用事件键(event keys),这些键用于将 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) {
    ...
}