如何使用基于java的配置将队列绑定到交换

时间:2018-06-08 01:48:03

标签: java spring spring-boot rabbitmq

我试图通过spring boot和基于java的配置来理解RabbitMQ。我在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个Queue Bean定义.- queueFoo和queueBar。绑定配置是否正确?在行 -

Binding bindingExchangeFoo(Queue queueFoo, TopicExchange exchange) {

参数的名称是什么 - queueFoo必须与Bean名称Queue匹配?任何人都可以清楚我的怀疑吗?

1 个答案:

答案 0 :(得分:0)

参数名称应与方法名称相同(方法名称将用作bean名称defaultlly),以便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");
}