• springboot 通过配置文件 控制Rabbitmq 启动


    不哔哔,直接上代码

    主要是 消费者添加配置

    一,把配置放在配置中心(放在消费服务上也可以)

    listener.direct.auto-startup设置为false,

    然后添加 rabbitmq.start 作为启动属性

     
    spring:
      rabbitmq:
        host: 127.0.0.1
        port: 5672
        username: guest
        password: guest
        listener:
          direct:
            auto-startup: false
     
    rabbitmq:
      start: true
     

    然后在消费服务的启动类   xxxxxApplication.class中添加

    package com.test.service1;
     
    import com.test.rabbitmq.RabbitmqApplication;
    import org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.Bean;
    import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
     
    import javax.annotation.Resource;
     
    @SpringBootApplication
    @EnableEurekaClient
    public class Service1Application {
        public static void main(String[] args) {
            ApplicationContext context=SpringApplication.run(Service1Application.class, args);
            RabbitMQStart rabbitMQRun = context.getBean(RabbitMQStart.class);
            rabbitMQRun.start();
        }
     
        @Bean
        public RabbitMQStart rabbitMQRun() {
            return new RabbitMQStart();
        }
        private static class RabbitMQStart {
            //为了在main中的static方法中使用@value注解只能用这种办法
            @Value("${rabbitmq.start}")
            private Boolean rabbitmqStart;
     
            @Resource
            RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry;
            public void start() {
                if(rabbitmqStart)
                    rabbitListenerEndpointRegistry.start();
                else
                    rabbitListenerEndpointRegistry.stop();
                System.out.println("=================== Rabbitmq:"+rabbitmqStart+"===================");
            }
        }
    }

    二,测试:

    rabbitmq.start = true 时

    rabbitmq.start = false 时

  • 相关阅读:
    U盘禁用工具1.3
    《中文专业论文写作概论》笔记
    基于WAP1.0的手机论坛网站系统
    销售统计SQL
    移动如何保护个人开发者的合法权益?
    c#使用winnet检测网络连接状况
    HBASE客户端的一些参数设置
    代理模式
    使用Eclipse+Axis2生成webservice
    java多线程的理解
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/14610722.html
Copyright © 2020-2023  润新知