以编程方式禁用 RabbitAutoConfiguration
disable RabbitAutoConfiguration programmatically
是否有在 spring 启动 (1.2.2) 中禁用 RabbitAutoConfiguration 的编程(基于属性)方法。
看起来 spring.rabbitmq.dynamic=false 只禁用 AmqpAdmin 而不是连接工厂等
我们想要一个模型,其中应用程序属性可能来自 spring 云配置(包括控制总线)或通过 -D jvm args。这个决定是在部署时做出的。
当属性来自 -D jvm args 时,我们禁用 spring 云配置客户端,但 rabbit 不断抛出异常,例如:
[org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer] - [Co
nsumer 引发异常,如果连接工厂支持,处理可以重新启动
ts它。异常摘要:org.springframework.amqp.AmqpConnectException:java.ne
t.ConnectException:连接被拒绝:连接]
首先您需要从您的应用程序中排除 RabbitAutoconfiguration
@EnableAutoConfiguration(exclude=RabbitAutoConfiguration.class)
然后就可以根据一些属性这样导入了
@Configuration
@ConditionalOnProperty(name="myproperty",havingValue="valuetocheck",matchIfMissing=false)
@Import(RabbitAutoConfiguration.class)
class RabbitOnConditionalConfiguration{
}
是否有在 spring 启动 (1.2.2) 中禁用 RabbitAutoConfiguration 的编程(基于属性)方法。
看起来 spring.rabbitmq.dynamic=false 只禁用 AmqpAdmin 而不是连接工厂等
我们想要一个模型,其中应用程序属性可能来自 spring 云配置(包括控制总线)或通过 -D jvm args。这个决定是在部署时做出的。 当属性来自 -D jvm args 时,我们禁用 spring 云配置客户端,但 rabbit 不断抛出异常,例如:
[org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer] - [Co nsumer 引发异常,如果连接工厂支持,处理可以重新启动 ts它。异常摘要:org.springframework.amqp.AmqpConnectException:java.ne t.ConnectException:连接被拒绝:连接]
首先您需要从您的应用程序中排除 RabbitAutoconfiguration
@EnableAutoConfiguration(exclude=RabbitAutoConfiguration.class)
然后就可以根据一些属性这样导入了
@Configuration
@ConditionalOnProperty(name="myproperty",havingValue="valuetocheck",matchIfMissing=false)
@Import(RabbitAutoConfiguration.class)
class RabbitOnConditionalConfiguration{
}