一文带你如何用SpringBoot+RabbitMQ方式来收发消息

这篇具有很好参考价值的文章主要介绍了一文带你如何用SpringBoot+RabbitMQ方式来收发消息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

楔子

预告了本篇的内容:利用RabbitTemplate和注解进行收发消息,还有一个我临时加上的内容:消息的序列化转换。

本篇会和SpringBoot做整合,采用自动配置的方式进行开发,我们只需要声明RabbitMQ地址就可以了,关于各种创建连接关闭连接的事都由Spring帮我们了~

交给Spring帮我们管理连接可以让我们专注于业务逻辑,就像声明式事务一样易用,方便又高效。

1. 🔍环境配置

第一节我们先来搞一下环境的配置,上一篇中我们已经引入了自动配置的包,我们既然使用了自动配置的方式,那RabbitMQ的连接信息我们直接放在配置文件中就行了,就像我们需要用到JDBC连接的时候去配置一下DataSource一样。

一文带你如何用SpringBoot+RabbitMQ方式来收发消息,java-rabbitmq,rabbitmq,spring boot

如图所示,我们只需要指明一下连接的IP+端口号和用户名密码就行了,这里我用的是默认的用户名与密码,不写的话默认也都是guest,端口号也是默认5672。

主要我们需要看一下手动确认消息的配置,需要配置成manual才是手动确认,日后还会有其他的配置项,眼下我们配置这一个就可以了。


接下来我们要配置一个Queue,上一篇中我们往一个名叫erduo的队列中发送消息,当时是我们手动定义的此队列,这里我们也需要手动配置,声明一个Bean就可以了。

@Configuration
public class RabbitmqConfig {
    @Bean
    public Queue erduo() {
        // 其三个参数:durable exclusive autoDelete
        // 一般只设置一下持久化即可
        return new Queue("erduo",true);
    }

}
复制代码

就这么简单声明一下就可以了,当然了RabbitMQ毕竟是一个独立的组件,如果你在RabbitMQ中通过其他方式已经创建过一个名叫erduo的队列了,你这里也可以不声明,这里起到的一个效果就是如果你没有这个队列,会按照你声明的方式帮你创建这个队列。

配置完环境之后,我们就可以以SpringBoot的方式来编写生产者和消费者了。

2. 📕生产者与RabbitTemplate

和上一篇的节奏一样,我们先来编写生产者,不过这次我要引入一个新的工具:RabbitTemplate

听它的这个名字就知道,又是一个拿来即用的工具类,Spring家族这点就很舒服,什么东西都给你封装一遍,让你用起来更方便更顺手。

RabbitTemplate实现了标准AmqpTemplate接口,功能大致可以分为发送消息和接受消息。

我们这里是在生产者中来用,主要就是使用它的发送消息功能:sendconvertAndSend方法。

// 发送消息到默认的Exchange,使用默认的routing key
void send(Message message) throws AmqpException;

// 使用指定的routing key发送消息到默认的exchange
void send(String routingKey, Message message) throws AmqpException;

// 使用指定的routing key发送消息到指定的exchange
void send(String exchange, String routingKey, Message message) throws AmqpException;
复制代码

send方法是发送byte数组的数据的模式,这里代表消息内容的对象是Message对象,它的构造方法就是传入byte数组数据,所以我们需要把我们的数据转成byte数组然后构造成一个Message对象再进行发送。

// Object类型,可以传入POJO
void convertAndSend(Object message) throws AmqpException;

void convertAndSend(String routingKey, Object message) throws AmqpException;

void convertAndSend(String exchange, String routingKey, Object message) throws AmqpException;
复制代码

convertAndSend方法是可以传入POJO对象作为参数,底层是有一个MessageConverter帮我们自动将数据转换成byte类型或String或序列化类型。

所以这里支持的传入对象也只有三种:byte类型,String类型和实现了Serializable接口的POJO。


介绍完了,我们可以看一下代码:文章来源地址https://www.toymoban.com/news/detail-698527.html

@Slf4j
@Component("rabbitProduce")
public class RabbitProduce {
    @A

到了这里,关于一文带你如何用SpringBoot+RabbitMQ方式来收发消息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot RabbitMQ收发消息、配置及原理

    今天分析SpringBoot通过自动配置集成RabbitMQ的原理以及使用。 RabbitMQ是基于AMQP协议的message broker,所以我们首先要对AMQP做一个简单的了解。 AMQP (Advanced Message Queuing Protocol) is a messaging protocol that enables conforming client applications to communicate with conforming messaging middleware brokers. AMQP是A

    2024年02月20日
    浏览(28)
  • 如何用Postman做接口自动化测试?一文5个步骤带你成功实现!

    什么是自动化测试 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来 本质是用代码去测试另一段代码,属于一种软件开发工作,已经开发完成的用例还必须随着被测试对象的改变而

    2024年02月04日
    浏览(40)
  • 搭建RabbitMQ消息服务,整合SpringBoot实现收发消息

    作者主页 :Designer 小郑 作者简介 :3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN博客专家,蓝桥云课认证讲师。 消息队列是一种在应用程序之间传递数据的通信机制 ,它基于 发布-订阅 模式,将消息发送者(发布者)和消息接收者

    2024年02月09日
    浏览(46)
  • 教你如何用fiddler抓取https(详细教程)

    对于想抓取HTTPS的测试初学者来说,常用的工具就是fiddler,可是在初学时,大家对于fiddler如何抓取HTTPS真是伤了脑筋,可能你一步步按着网上的帖子成功了,那当然是极好的,有可能没有成功,这时候你就很抓狂了,我把网络上的教程进行了整合和一些我的安装经验(其中注

    2024年02月10日
    浏览(30)
  • 教你如何用Python做人脸识别,简单易学!

    Python是一种计算机编程语言以及配套的软件工具和库。Python简单易学,代码十分简洁,它使用强制空白符作为缩进,这大大提高了Python的开发效率,使用Python能够在更短的时间内完成更多的工作。Python是一门开源的语言,并且Python还有许多强大的开源库,这些库使得Python无论

    2024年02月14日
    浏览(30)
  • 教你如何用Vue3搭配Spring Framework

    摘要: 在本文中,我们将介绍如何使用Vue3和Spring Framework进行开发,并创建一个简单的TodoList应用程序。 本文分享自华为云社区《Vue3搭配Spring Framework开发【Vue3应用程序实战】》,作者:黎燃。 Vue3和Spring Framework都是现代Web应用程序开发中最流行的框架之一。 Vue3是一个流行

    2024年02月11日
    浏览(35)
  • 【公开课报名】腾讯产品经理教你如何用好腾讯会议

    对开发者而言,这是一个最好的时代。传统产业逐渐走向成熟,大数据、物联网、云计算、人工智能等各种新兴技术百花齐放,开发者大有用武之地。在这些科技浪潮下,企业数字化转型已是大势所趋。但与此同时,新技术层出不穷的涌现,也让开发者会产生不同的焦虑。

    2024年02月14日
    浏览(41)
  • 论文篇:教你如何用chatgpt辅助写论文文献综述

      ChatGPT教你写文献综述的模版 当前文献综述的模版: 一、绪论: 1. XX话题背景介绍 2. XX话题的研究重要性及意义 3. XX话题的研究现状回顾 二、相关方法: 1. XX话题的一般方法介绍 2. XX话题的先进方法讨论 三、研究结果: 1. XX话题的实验结果分析 2. XX话题实验结果相关研究

    2024年02月12日
    浏览(32)
  • 【SpringBoot】一文带你入门SpringBoot

    ✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Spring】 🥭本文内容:SpringBoot的入门学习 前面几篇文章我们学习完了 Spring 、 SpringMVC ,以及SSM整合的案例,接下来我们将进

    2024年01月22日
    浏览(21)
  • 从模型到部署,教你如何用Python构建机器学习API服务

    本文分享自华为云社区《Python构建机器学习API服务从模型到部署的完整指南》,作者: 柠檬味拥抱。 在当今数据驱动的世界中,机器学习模型在解决各种问题中扮演着重要角色。然而,将这些模型应用到实际问题中并与其他系统集成,往往需要构建API服务。本文将介绍如何

    2024年04月08日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包