SpringBoot——SpringBoot整合RabbitMQ(上)「建议收藏」

SpringBoot——SpringBoot整合RabbitMQ(上)「建议收藏」SpringBoot——SpringBoot整合RabbitMQ(上)

大家好,又见面了,我是你们的朋友全栈君。

首先需要搭建一个RabbitMQ的服务,我是在docker跑了一个rabbitMQ的服务,

docker的命令语句

 docker run --name rabbit -P -d rabbitmq:3-management

映射出来的端口号如下图

SpringBoot——SpringBoot整合RabbitMQ(上)「建议收藏」

rabbitMQ这里我就不多讲了,直接上代码

1.首先需要创建SpringBoot项目,添加pom依赖。

创建SpringBoot项目在之前的博客中我已经讲过了下面是链接,大家可以看一下

https://blog.csdn.net/lp840312696/article/details/82392231

需要在创建好的SpringBoot项目中添加rabbitMQ的pom依赖

         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

2.向application.properties文件中添加配置

 #rabbitMQ的 5672 端口
spring.rabbitmq.addresses=192.168.31.199:32771
#用户名密码
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
spring.rabbitmq.connection-timeout=15000

3.创建实体对象

如果大家没有@Data注解,需要创建属性的get和set方法。

 package com.youyou.entity;

import lombok.Data;

import java.io.Serializable;

@Data
public class Order implements Serializable {

    private String id;

    private String name;

    private String messageId;

}

注意:一定要实现Serializable接口

4.创建向rabbitMQ中发送数据的类(核心)

 package com.youyou.producer;

import com.youyou.entity.Order;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.support.CorrelationData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 发送订单的类
 */
@Component
public class OrderSend {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void send (Order order) throws Exception{
        CorrelationData correlationData = new CorrelationData();
        correlationData.setId(order.getMessageId());

        rabbitTemplate.convertAndSend("order-exchange" //交换机
                ,"order.abc"  //路由键
                ,order  //发送数据
                ,correlationData);  //消息唯一id
    }

}

5.配置rabbitMQ的交换机和路由键

添加 一个rabbitMQ交换机

SpringBoot——SpringBoot整合RabbitMQ(上)「建议收藏」

添加rabbitMQ队列

SpringBoot——SpringBoot整合RabbitMQ(上)「建议收藏」

到目前为止rabbitMQ的配置整合已经完成。就是这么简单

6.测试

 package com.youyou.worldmq;

import com.youyou.entity.Order;
import com.youyou.producer.OrderSend;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.UUID;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MQApplicationTests {
    
    @Autowired
    private OrderSend orderSend;
    @Test
    public void send() throws Exception {
        Order order = new Order();
        order.setId("2018100100001");
        order.setName("测试订单");
        order.setMessageId(System.currentTimeMillis()+"$" + UUID.randomUUID().toString());

        orderSend.send(order);
    }

}

执行之后可以在rabbitMQ中看到是否收到数据

SpringBoot——SpringBoot整合RabbitMQ(上)「建议收藏」

我这里是一共发了两条。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106470.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 结巴分词基础用法

    结巴分词基础用法结巴分词基础

    2025年6月6日
    3
  • jsp+ajax_javascriptjavascript日

    jsp+ajax_javascriptjavascript日明后两天梁言兵老师来讲Ajax及其最近作过的一个真实的Ajax项目,所以,我今天讲解梁老师的课程所需要的一些前置知识。因为大家对Javascript不是很熟悉,所以我首先讲解Javascript的DHTML功能。本来入学考试要求大家很好地掌握Javascript的,但是大家都不能理解我们的苦衷,并没有专心去对待Javascript。想想我前两年强调javascript和css的重要性时,一些培训中

    2025年10月27日
    2
  • 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID10

    图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID10    RAID技术相信大家都有接触过,尤其是服务器运维人员,RAID概念很多,有时候会概念混淆。这篇文章为网络转载,写得相当不错,它对RAID技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则,对于初学者应该有很大的帮助。一、RAID概述  1988年美国加州大学伯克利分校的D.A.Patterson教授等首次…

    2022年7月15日
    27
  • Window下Tomcat端口被占用(Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are)

    Window下Tomcat端口被占用(Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are)问题:Eclipse中启动Tomcat时,遇到端口占有问题。解决方案:window下打开命令窗口(win+R)→输入cmd:输入 netstat -ano|findstr 8080(那个端口被占有,就输入那个端口),回车再次输入 taskkill /pid 12712/f(12712对应上图的12712 ),回车。 结束进程,重新启动Tomcat即可正常启动。  —…

    2022年6月13日
    39
  • 硬盘恢复分区_怎么把efi分区删掉

    硬盘恢复分区_怎么把efi分区删掉Windows系统在安装的时候,会自动为我们的磁盘划分一个恢复分区和一个EFI分区。如果后面不打算再用这些分区的时候,却发现无法删除。本文将提供解决方法。因为误操作会导致数据丢失,所以我将两种不同的解决方法分开成两篇文章以避免干扰:EFI分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作)EFI分区/恢复分区不可删除?你需要使用命令行了(全命令行操作)本文内容无法删…

    2022年8月11日
    11
  • Mac os 安装Python Pycharm 配置环境「建议收藏」

    Mac os 安装Python Pycharm 配置环境「建议收藏」  主要就是这三个库的安装   importrequestsfrombs4importBeautifulSoupimporttime我是PYthon小白,自己把程序运行出来在环境配置走了不少弯路。因为我还安装了一台Windows环境,中间交叉做了其他一些事情,所以思路没有那么清晰。但是刚刚终于成功抓了数据。代码和程序运行成功截图放在最后。先说说环境配置,我会尽量回忆。我安装的是…

    2022年8月28日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号