zoukankan      html  css  js  c++  java
  • springboot踩雷系列之RabbitMQ(基础版)

    开始整理RabbitMQ咯  因为之前完全不了解 基础知识方面参考了很多  推荐一个印象很深刻的  基础知识讲的很全面:https://www.cnblogs.com/dwlsxj/p/RabbitMQ.html

    至于安装部分可以自行百度  网上很多很全

    我就直接开始贴代码了:

    先进行简单的一次消息发送接收(因为LZ刚开始做的时候因为导错包 搞了半天也跑不起来 特此沾上包地址)

    配置类(初始化队列)

    import javafx.application.Application;
    import org.springframework.amqp.core.*;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    
    public class RabbitMQConfig {
        //以下方法的方法名无任何特别作用 队列名为括号中的值   例如:new Queue("oneToOne")的队列名为oneToOne
        @Bean
        public Queue TestQueue(){
            return new Queue("testQueue");
        }
        public static void main(String[] args) throws Exception {
            SpringApplication.run(Application.class, args);
        }
    }

    测试类

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController//@ResponseBody+@Controller的结合体 直接返回JSON数据
    @RequestMapping("/rabbit")
    public class RabbitTestController {
    
        @Autowired
        private SendController helloSender1;
    
        /**
         * 单生产者-消费者
         */
        @RequestMapping("/oneToOne")
        public void oneToOne() {
            helloSender1.send("oneToOne");
        }
    }

    生产者

    import org.springframework.amqp.core.AmqpTemplate;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import java.time.LocalDateTime;
    
    /**
     * 生产者一号
     * <p>
     * @Date 2019/5/23 15:56
     **/
    @Component
    public class SendController {
    
        @Autowired
        private AmqpTemplate template;
    
        //字符串传输使用
        public void send(String msg) {
            String context = msg+ LocalDateTime.now();
            System.out.println("生产者一号 : " + context);
            //参数1为队列名称 2为消息内容
            this.template.convertAndSend("testQueue", context);
        }
    }

    消费者

    import org.springframework.amqp.rabbit.annotation.RabbitHandler;
    import org.springframework.amqp.rabbit.annotation.RabbitListener;
    import org.springframework.stereotype.Component;
    
    /**
     * 消费者一号
     * <p>
     * @Date 2019/5/23 15:58
     **/
    @Component
    @RabbitListener(queues = {"testQueue"})
    public class ReceiverController {
    
        @RabbitHandler
        public void process(String msg) {
            System.out.println("消费者一号 : " + msg);
        }
    }

    执行完毕后访问http://127.0.0.1:8888/rabbit/oneToOne就会看到两条记录,一条发送,一条接收,如下图

    此时在RabbitMQ Management(http://localhost:15672)中可以看到这个队列的的具体数据

    至此,一个简单的RabbitMQ就搭建完成了

     源代码会在后续的进阶版中贴出

  • 相关阅读:
    愚蠢的程序员...
    云计算优于终端计算和集中计算?
    REST资源合集
    龙芯软件开发:使用龙芯2e的模拟器GXemul
    The Origins of Complex Numbers
    net 3.5 Ms Chart 使用心得
    XPO 第三方控件学习(DevExpress Persistent Object )系列表间关系
    show your data
    缩略数据
    单片机试题
  • 原文地址:https://www.cnblogs.com/huayuxiaoxiang/p/10918257.html
Copyright © 2011-2022 走看看