我使用SpringAMQP和SpringBoot@Configuration
和@Bean
注释来创建所有必需的队列、交换和绑定。
@Bean
public Queue queue() {
return new Queue("my_old_queue", true, false, false);
}
@Bean
public Exchange exchange() {
return new DirectExchange("MY_OLD_EXCHANGE");
}
@Bean
public Binding binding() {
return BindingBuilder.bind(queue())
.to(exchange())
.with("old_binding")
.noargs();
}
但我面临着升级拓扑的问题:
是否存在用于移除或解除绑定的注释(如< code>@Unbind)?我见过建议使用< code > RabbitManagementTemplate 的例子,但这是一种完全不同的配置方式——我想把所有东西都放在单个@Configuration类中,只使用注释或配置beans(这可能吗?).对于创建/删除和更新rabbit拓扑是否存在一些共同的模式(也许我漏掉了什么)?
您无法删除带有注释或配置的实体,请使用 RabbitAdmin.delete*
() 方法删除它们,就像该答案中一样 - 管理模板用于列出绑定,RabbitAdmin
(amqpAdmin
) 执行删除。