Я использую аннотации Spring AMQP и Spring Boot @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();
}
Но я столкнулся с проблемой обновления моей топологии:
Существует ли какая-либо аннотация для удаления или отмены привязки (например, @Unbind
)?
Я видел пример, где предлагалось RabbitManagementTemplate
, но это совершенно другой способ настройки — я хочу хранить все в одном классе @Configuration и использовать только аннотации или конфигурационные компоненты (возможно ли это?).
Существует ли какой-то общий шаблон для создания/удаления и обновления топологии кролика (может быть, я что-то пропустил)?
Вы не можете удалять объекты с аннотациями или конфигурацией, используйте методы RabbitAdmin.delete*()
для их удаления, как в этом ответе — шаблон управления использовался для перечисления привязок, RabbitAdmin
(amqpAdmin
) выполняет удаление.