Как связать очереди для обмена с использованием конфигурации на основе Java - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь понять RabbitMQ с конфигурациями на основе весенней загрузки и Java.Я наткнулся на код в github, где настраиваются 2 очереди.Пожалуйста, посмотрите на фрагмент кода ниже:

@Bean
Queue queueFoo() {
    return new Queue("queue.foo", false);
}

@Bean
Queue queueBar() {
    return new Queue("queue.bar", false);
}

@Bean
TopicExchange exchange() {
    return new TopicExchange("exchange");
}

@Bean
Binding bindingExchangeFoo(Queue queueFoo, TopicExchange exchange) {
    return BindingBuilder.bind(queueFoo).to(exchange).with("queue.foo");
}

@Bean
Binding bindingExchangeBar(Queue queueBar, TopicExchange exchange) {
    return BindingBuilder.bind(queueBar).to(exchange).with("queue.bar");
}

Есть 2 определения Beue Queue. - queueFoo и queueBar.Правильно ли настроена привязка?В строке -

Binding bindingExchangeFoo(Queue queueFoo, TopicExchange exchange) {

Так что же, имя аргумента - queueFoo должно совпадать с именем бина Queue ??Может кто-нибудь, пожалуйста, очистить мои сомнения?

1 Ответ

0 голосов
/ 08 июня 2018

Имя аргумента должно совпадать с именем метода (поскольку имя метода будет использоваться как имя компонента по умолчанию), чтобы Spring мог автоматически связывать зависимости.Если этот способ не работает, вы можете попробовать так:

@Bean
Binding bindingExchangeFoo() {
    return BindingBuilder.bind(queueFoo()).to(exchange()).with("queue.foo");
}

@Bean
Binding bindingExchangeBar() {
    return BindingBuilder.bind(queueBar()).to(exchange()).with("queue.bar");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...