@RabbitListener 可以按条件申请吗
Can @RabbitListener apply by condition
我想在 属性 存在时创建一个 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。
您可以对单个 class
使用 @Component 和 @Conditional
我想在 属性 存在时创建一个 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。
您可以对单个 class
使用 @Component 和 @Conditional