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


相关推荐

  • 面向对象程序设计的基本原理_面向对象程序设计c++答案

    面向对象程序设计的基本原理_面向对象程序设计c++答案Java程序设计(面向对象)- 设计原理

    2022年4月22日
    29
  • 库存系统难破题?且看京东到家如何破「建议收藏」

    库存系统难破题?且看京东到家如何破「建议收藏」京东到家库存系统架构设计目前,京东到家库存系统经历两年多的线上考验与技术迭代,现服务着万级商家十万级店铺的规模,需求的变更与技术演进,我们是如何做到系统的稳定性与高可用呢,下图会给你揭晓答案(通过强大的基础服务平台让应用、JVM、Docker、物理机所有健康指标一目了然,7*24小时智能监控告警让开发无须一直盯着监控,另外数据与业务相辅相成,用数据验证业务需求,迭代业务需求,让业务需求都尽可能

    2022年5月16日
    59
  • mybatiscodehelperpro激活成功教程2.8.4_idea 激活成功教程

    mybatiscodehelperpro激活成功教程2.8.4_idea 激活成功教程https://zhile.io/2019/04/23/mybatis-code-helper-pro-crack.html

    2022年9月21日
    0
  • 分享十道Selenium面试题(附答案)「建议收藏」

    分享十道Selenium面试题(附答案)「建议收藏」         软件测试培训也是一种提升技术及迅速转行的辅助手段,不管在哪学你都必须先去试听,看看讲课的风格及氛围,是否通俗易懂,课件是否老化,工具是否过时,课程内容及项目是否具有实战性,主要就是了解项目实战周期是多久,工具是否属现在主流,还有你自己喜不喜欢讲师的讲课风格,如果不喜欢讲师的上课风格也会对你的学习进度造成一定的影响,今天给大家分享Selenium的面试题。希望在学习的小伙伴都能…

    2022年6月20日
    26
  • QuoteName\生成Sql语句

    QuoteName\生成Sql语句ifexists(selectnamefromtempdb.dbo.sysobjectswhereid=object_id(N’tempdb.dbo.#tempWorkDate’)andtype=’u’)droptable#tempWorkDateCREATETABLE[#tempWorkDate]([WorkDate][varc…

    2022年9月25日
    0
  • el表达式的内置对象_IF嵌套函数

    el表达式的内置对象_IF嵌套函数1.模拟需求:从一个商品集合中取出所有商品,第一个商品用它的第一张图片,第二个商品用它的第二张图片2.起初按照通用思路,在c:forEach中定义一个varStatus,再通过vaStatus获取下标,结果写成了el表达式嵌套(如下),结果根本出不来 3.通过查资料发现,el表达式是不能直接写$进行嵌套的,如果要嵌套使用,需要省略掉嵌套里面的${}符号,如下就可以。

    2022年7月28日
    8

发表回复

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

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