springboot集成 rabbitMQ

  1. 引入pom

      <!--rabbitmq-->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-amqp</artifactId>
      </dependency>
    
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
    
  2. 配置 application.properties

    ## rabbitmq 配置(必须)
    spring.rabbitmq.host=192.168.63.112
    spring.rabbitmq.port=5672
    spring.rabbitmq.username=admin
    spring.rabbitmq.password=admin
    spring.rabbitmq.virtual-host=light_test
    
    ## 队列名称
    spring.application.name=rabbitmq-provider
    spring.rabbitmq.exchageName=light_exchange
    spring.rabbitmq.queueName1=light_queue1
    
    ## 项目端口
    server.port=80
    
  3. 配置queue和exchage

    import org.springframework.amqp.core.*;
    import org.springframework.beans.factory.annotation.Configurable;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    
    
    /**
     * @Classname RabbitMQConfig
     * @Description TODO
     * @Date 2020/7/7 14:23
     * @Created by light
     */
    @Configurable
    public class RabbitMQConfig {
        @Value("${spring.rabbitmq.exchageName}")
        private String exchangeName;
    
    
        @Value("${spring.rabbitmq.queueName1}")
        private String queueName1;
    
    
        /**
         * 配置 exchange
         *
         * @return
         */
        @Bean
        public DirectExchange exchange() {
            return new DirectExchange(exchangeName, true, false);
        }
    
        /**
         * 配置 Queue1
         *
         * @return
         */
        @Bean
        public Queue lightQueue1() {
            return new Queue(queueName1, true);
        }
    
        /**
         * 绑定 指定的queue 到指定的 exchage 上
         * @return
         */
        @Bean
        public Binding bindingQueue1() {
           return  BindingBuilder.bind(lightQueue1())
                    .to(exchange())
                    .with(queueName1);
        }
    
    }
    
  4. 配置消费者

    import org.springframework.amqp.rabbit.annotation.RabbitHandler;
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.stereotype.Component;
    
    import java.util.Map;
    
    /**
    * @Classname RabbitMQConsumer
    * @Description TODO
    * @Date 2020/7/7 15:30
    * @Created by light
    */
    @Component
    @RabbitListener(queues = "light_queue1")
    public class RabbitMQConsumer {
       /**
        *  此方法为消费方法
        * @param messageMap 参数为发送消息的 参数
        */
       @RabbitHandler
       public void process (Map messageMap) {
           System.out.println(messageMap.toString());
       }
    }
    
  5. 发送消息

    @Resource
    private RabbitTemplate rabbitTemplate;
    /**
     * 发送消息的方法
     */
    public void sendMq () {
        HashMap<String, String> map = new HashMap<>();
        map.put("name","light");
        map.put("id","1");
        map.put("type","1");
        rabbitTemplate.convertAndSend(exchateName,queueName1,map);
        System.out.println("发送成功");
    }
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。