我希望在存在属性时创建RabbitListener,但@ConditionOnProperty不能与@RabbitListener结合使用。现在我有一个解决方法如下。它有没有更好的方法?
@Bean
@ConditionalOnProperty(name = "pmc.multiple.hypervisor.reply.routerkey.kvm")
public SimpleMessageListenerContainer kvmReplyQueueConsumer() {
return getSimpleMessageListenerContainer(environment
.getProperty("pmc.multiple.hypervisor.reply.routerkey.kvm"));
}
你真的尝试过吗?这对我来说很好......
public static class ConditionalListener {
@RabbitListener(queues="test.queue")
public void listen(String foo) {
System.out.println(foo);
}
}
@ConditionalOnProperty("foo.enabled")
@Bean
public ConditionalListener foo() {
return new ConditionalListener();
}
当与-Dfoo.enabled=true
一起运行时,我收到消息;否则不会声明bean。