@RabbitListener可以按条件申请

问题描述 投票:0回答:1

我希望在存在属性时创建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"));
} 
rabbitmq spring-amqp spring-rabbit
1个回答
1
投票

你真的尝试过吗?这对我来说很好......

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。

© www.soinside.com 2019 - 2024. All rights reserved.