奇技淫巧:如何给项目中的RabbitMQ添加总开关

本文主要分享了如何给项目中的RabbitMQ添加总开关,通过简单配置开/关RabbitMQ。
一、需求背景
SpringBoot项目里使用了RabbitMQ,但某些场景下,不希望项目启动时自动检查RabbitMQ连接
例如: 在开发不需要RabbitMQ的功能过程中,若RabbitMQ服务未启动,会导致SpringBoot项目启动失败。
二、实现方案
1.排除org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration(2种方式)
在SpringBootApplication启动类上使用exclude排除

java 复制代码
@SpringBootApplication(exclude = {RabbitAutoConfiguration.class})

或者在yaml中配置

java 复制代码
spring:
  autoconfigure:
    exclude: org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration

2.自定义RabbitMQ自动配置类

RabbitCondition是开关控制类(template.enable.rabbitmq=false表示关闭RabbitMQ)

application.yml配置

java 复制代码
spring:
  rabbitmq:
    addresses: localhost:5672
    username: guest
    password: guest
    virtual-host: /
    publisherConfirms: true # 回调ConfirmCallback实现类
    publisherReturns: true # 回调ReturnCallback实现类
    
template:
  enable:
    rabbitmq: false # RabbitMQ开关

这种情况下启动SpringBoot项目就不会初始化RabbitMQ的相关内容了
怎么样?如果你觉得有用的话,还不快快收藏起来!!!
附:涉及的代码目录
github: GitHub - 897665787/springcloud-template: 一个基于springcloud netflix微服务框架,记录了关于微服务开发的一些最佳应用,欢迎大家学习指导。
gitee: springcloud-template: 一个基于springcloud netflix微服务框架,记录了关于微服务开发的一些最佳应用,欢迎大家学习指导。

springcloud-template
└── template-framework
└── autoconfigure
└── RabbitAutoConfiguration-- 自定义RabbitMQ自动配置类

相关推荐
程序员 小柴3 小时前
RabbitMQ的工作模式
分布式·rabbitmq·ruby
蒋星熠3 小时前
在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置
大数据·linux·hadoop·分布式·ubuntu·docker
小样vvv4 小时前
【分布式】微服务系统中基于 Hystrix 的熔断实现方案
分布式·hystrix·微服务
清风19817 小时前
kafka消息可靠性传输语义
数据库·分布式·kafka
小诸葛的博客7 小时前
Kafka、RocketMQ、Pulsar对比
分布式·kafka·rocketmq
数据智能老司机9 小时前
CockroachDB权威指南——SQL调优
数据库·分布式·架构
数据智能老司机9 小时前
CockroachDB权威指南——应用设计与实现
数据库·分布式·架构
数据智能老司机9 小时前
CockroachDB权威指南——CockroachDB 模式设计
数据库·分布式·架构
RainbowSea1 天前
6. RabbitMQ 死信队列的详细操作编写
java·消息队列·rabbitmq