我需要声明多个Fanout交换
@SpringBootApplication
public class Application {
@Bean
FanoutExchange exchange1() {
return new FanoutExchange(exchangeName1, true, false);
}
@Bean
FanoutExchange exchange2() {
return new FanoutExchange(exchangeName2, true, false);
}
....
....
}
我添加了exchange2
的代码后,我得到了错误:
申请无法开始
说明:
com.Application中方法绑定的参数1需要一个bean,但是找到了2个: -exchange1:由com.Application中的方法'exchange1'定义 -exchange2:由com.Application中的方法“ exchange2”定义
操作:
考虑将其中一个bean标记为@Primary,更新使用者以接受多个bean,或使用@Qualifier标识应消耗的bean
答案 0 :(得分:1)
异常告诉您解决方案:
您的代码应类似于
@SpringBootApplication
public class Application {
@Bean
@Qualifier("exchange1")
@Primary
FanoutExchange exchange1() {
return new FanoutExchange(exchangeName1, true, false);
}
@Bean
@Qualifier("exchange2")
FanoutExchange exchange2() {
return new FanoutExchange(exchangeName2, true, false);
}
}