spring - 以编程方式禁用 RabbitAutoConfiguration

标签 spring spring-boot

在 Spring Boot (1.2.2) 中是否有禁用 RabbitAutoConfiguration 的编程(基于属性)方法。

看起来 spring.rabbitmq.dynamic=false 仅禁用 AmqpAdmin 而不是连接工厂等。

我们想要一个模型,其中应用程序属性可能来自 spring 云配置(包括控制总线)或通过 -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:连接被拒绝:连接]

最佳答案

首先,您需要从您的应用程序中排除 RabbitAutonfiguration

@EnableAutoConfiguration(exclude=RabbitAutoConfiguration.class)

然后你可以根据这样的一些属性导入它
@Configuration
@ConditionalOnProperty(name="myproperty",havingValue="valuetocheck",matchIfMissing=false)
@Import(RabbitAutoConfiguration.class)
class RabbitOnConditionalConfiguration{

}

关于spring - 以编程方式禁用 RabbitAutoConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30845711/

相关文章:

java - 由 : . 引起..无法转换为 org.hibernate.engine.jdbc.connections.spi.ConnectionProvider

java - 使用 Hibernate 在外键字段中插入空值

java - 第二个 Controller 方法调用时出现 401 错误

java - spring data jpa - 参数值[Book]与预期类型[ContentType]不匹配

spring-boot-starter-quartz 实现作业与扩展 QuartzJobBean

java - Spring Boot 和配置文件

spring boot postgres : FATAL: sorry, 已经有太多客户

java - 如何修复 spring-boot-gradle-plugin :3. 0.0 问题?

java - Spring JPA,更新实体属性时的附加数据库操作

html - Spring Thymeleaf 如何使用 select 和 option html 标签在数据库中保存特定值