是否存在在spring boot(1.2.2)中禁用RabbitAutoConfiguration的程序化(基于属性)方法。
看起来像spring.rabbitmq.dynamic = false只禁用AmqpAdmin而不禁用连接工厂等。
我们想要一个模型,其中app属性可能来自spring cloud配置(包括控制总线)或来自-D jvm args。此决定是在部署时做出的。 当属性来自-D jvm args时,我们禁用spring cloud配置客户端,但是Rabbit不断抛出异常,例如:
[org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer] - [Co nsumer引发异常,如果连接工厂支持,处理可以重启 它。异常摘要:org.springframework.amqp.AmqpConnectException:java.ne t.ConnectException:拒绝连接:连接]
答案 0 :(得分:3)
First you need to exclude RabbitAutonfiguration from your app
@EnableAutoConfiguration(exclude=RabbitAutoConfiguration.class)
Then you can import it based on some property like this
@Configuration
@ConditionalOnProperty(name="myproperty",havingValue="valuetocheck",matchIfMissing=false)
@Import(RabbitAutoConfiguration.class)
class RabbitOnConditionalConfiguration{
}