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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CentOs 7 安装图形界面「建议收藏」

    CentOs 7 安装图形界面「建议收藏」小编在虚拟机上安装好之后,发现没有图形界面,只有命令行,虽然平常工作中都是用命令,但是没有图形界面老感觉缺点啥,所以就安装一下图形界面在root环境下执行安装命令yumgroupinstall"GNOMEDesktop""GraphicalAdministrationTools"执行过程中结果出错了:Cannotfindavalidbaseurlforrepo…

    2022年5月25日
  • 计算机中完成全选的快捷键,怎么全选-很实用!word中全选的快捷键介绍及使用方法…[通俗易懂]

    计算机中完成全选的快捷键,怎么全选-很实用!word中全选的快捷键介绍及使用方法…[通俗易懂]全选快捷键可以提高我们在操作word时工作效率,在操作Word2003中怎么对文档中的文字进行全选呢?下面为大家提供几种全选的方法,绝对好用。Word怎样全选?方法一、使用Word全选快捷键“Ctrl+A”进行全选(也适用于电子表格);方法二、展开菜单栏中的“编辑”,然后选择“全选”按钮来全选;方法三、利用鼠标全选,鼠标左键按住不放然后拖动到最后也可以全选;方法四、鼠标单击开始部分,然后在最末尾部…

    2022年5月9日
  • PyCharm配置_pycharm安装配置

    PyCharm配置_pycharm安装配置pycharmpycharm是一个比较好的pythonIDE,可以在MACOS和windows上使用,补全功能强大,而且界面十分友好,特别适合python编程人员使用。pycharmPycharm安装Pycharm配置修改成灰底主题显示行号修改字体大小编程字体我推荐运行调试Pycharm安装pycharm的安装地址:http://www.jetbrains.com/

    2022年8月26日
  • PyCharm激活码永久有效PyCharm2021.1.1激活码教程-持续更新,一步到位[通俗易懂]

    PyCharm激活码永久有效PyCharm2021.1.1激活码教程-持续更新,一步到位[通俗易懂]PyCharm激活码永久有效2021.1.1激活码教程-Windows版永久激活-持续更新,Idea激活码2021.1.1成功激活

    2022年6月19日
  • android:layout_gravity和android:gravity的区别

    android:layout_gravity和android:gravity的区别1.首先来看看android:layout_gravity和android:gravity的使用区别。android:gravity:这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,android:gravity=”left”和android:text=”提交”,这时Button上的文字“提交”将会位于Button的左

    2022年7月26日
  • Broadcasts详解「建议收藏」

    Android系统和Android应用程序都可以发送和接收广播,类似于publish-subscribe设计模式。广播在某个特定事件发生时被发送,例如,当各种系统事件发生时(如系统启动或设备开始充电),Android系统就会发送广播。应用程序也可以发送自定义广播,例如,通知其他应用程序他们关注的事件(如数据下载完成)。应用程序可以注册广播接收器。当广播被发送时,系统自动将广播传递到已注册接收该…

    2022年4月4日

发表回复

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

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