SpringBoot整合RabbitMQ图文过程以及RabbitTemplate常用API介绍

news2024/9/21 20:41:22

🧑‍💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:SpringBoot实战


系列文章目录

以下是专栏部分内容,更多内容请前往专栏查看!

标题
一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码)
一张思维导图带你学会Springboot创建全局异常、自定义异常
一张思维导图带你打通SpringBoot自定义拦截器的思路
28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈
一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署
一张流程图带你学会SpringBoot结合JWT实现登录功能
一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件
一张思维导图带你学会使用SpringBoot异步任务实现下单校验库存
一张思维导图带你学会SpringBoot使用AOP实现日志管理功能

在这里插入图片描述


专栏推荐

  • 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。链接>>>>>>>>>《Redis从头学》
  • 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。链接>>>>>>>《图解RabbitMQ》

文章目录

  • 系列文章目录
  • 专栏推荐
  • 🌟项目创建
  • 🌟POM文件
  • 🌟配置文件修改
  • 🌟测试是否整合成功
  • 🌟RabbitTemplate常用API
  • 🌟写在最后

🌟项目创建

1.进入网址springboot项目创建
2.创建项目,选择相关信息,注意JDK选择8版本。这里依赖添加RabbitMQ和Spring Web。图中漏了Spring Web。
在这里插入图片描述

3.生成压缩包并解压,使用IDEA打开。

🌟POM文件

如果是在原有项目上整合,引入以下依赖即可。

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

🌟配置文件修改

#整合rabbitmq
spring.rabbitmq.host=192.168.124.23
spring.rabbitmq.port=5672
spring.rabbitmq.virtual-host= /dev
spring.rabbitmq.username=admin
spring.rabbitmq.password=password

🌟测试是否整合成功

测试用例编写,发送消息。

	@Autowired
	RabbitTemplate rabbitTemplate;

	@Test
	void contextLoads() {
		rabbitTemplate.convertAndSend("生产消息");
	}

通过登录web管控台,可以看出有消息的发送和消费过程。rabbitmq消息默认是自动确认的。
在这里插入图片描述

🌟RabbitTemplate常用API

  1. 发送消息:
    • convertAndSend(String exchange, String routingKey, Object message):将消息发送到指定的交换机和路由键。
    • convertAndSend(String exchange, String routingKey, Object message, MessagePostProcessor messagePostProcessor):在发送消息之前对消息进行后处理。
    • convertAndSend(String exchange, String routingKey, Object message, CorrelationData correlationData):将消息发送到指定的交换机和路由键,并关联一个 correlationData。
    • send(String exchange, String routingKey, Message message):发送原始的 AMQP 消息对象。
  2. 接收消息:
    • receive(String queueName):从指定队列接收消息,并在没有消息时立即返回 null。
    • receiveAndConvert(String queueName):从指定队列接收消息,并将消息转换为指定类型的对象。
    • basicConsume(String queue, ChannelAwareMessageListener listener):基于底层的 Channel 消费队列中的消息,并使用指定的监听器处理接收到的消息。
  3. 手动确认:
    • basicAck(long deliveryTag, boolean multiple):手动确认消息的接收。将 deliveryTag 对应的消息标记为已确认。如果 multiple 为 true,则确认所有小于等于 deliveryTag 的消息。
    • basicNack(long deliveryTag, boolean multiple, boolean requeue):手动否认消息的接收。将 deliveryTag 对应的消息标记为未确认,可以选择是否将消息重新放回队列。
    • basicReject(long deliveryTag, boolean requeue):手动拒绝消息的接收。将 deliveryTag 对应的消息标记为未确认,并选择是否将消息重新放回队列。
  4. 消息可靠机制:
    • setCorrelationKey(Message message, byte[] correlationKey):设置消息的关联键(correlation key)。
    • setReturnCallback(ReturnCallback returnCallback):设置消息发送失败时的回调函数。
    • setConfirmCallback(ConfirmCallback confirmCallback):设置消息发送确认的回调函数。

🌟写在最后

有关于SpringBoot整合RabbitMQ图文过程以及RabbitTemplate常用API介绍到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。


请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/987198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GUI知识点总结(二)(java)

文章目录 &#x1f412;个人主页&#x1f3c5;JavaSE系列专栏&#x1f4d6;前言&#xff1a;&#x1f993;事件 &#x1f3e8;Adapter 适配器&#x1f415;对话框&#x1f98d;showMessageDialog()&#xff1a;消息对话框&#x1f98d;showConfirmDialog()&#xff1a;确认对话…

ChatGPT 插件 “Consensus“ 实现论文搜索功能;数据工程在语言建模中的重要性

&#x1f989; AI新闻 &#x1f680; ChatGPT 插件 “Consensus” 实现论文搜索功能 摘要&#xff1a;OpenAI 推出了一个名为 “Consensus” 的插件&#xff0c;可在 ChatGPT 上进行论文搜索。用户只需用一句话描述自己想了解的问题&#xff0c;插件就能从 2 亿篇论文中搜索并…

Tomcat架构设计源码剖析

Tomcat架构设计&源码剖析 Tomcat 架构设计 Tomcat的功能&#xff08;需求&#xff09; 浏览器发给服务端的是一个 HTTP 格式的请求&#xff0c;HTTP 服务器收到这个请求后&#xff0c;需要调用服务端程序来处理&#xff0c;所谓的服务端程序就是你写的 Java 类&#xff…

实现 js 中所有对象的深拷贝(包装对象,Date 对象,正则对象)

通过递归可以简单实现对象的深拷贝&#xff0c;但是这种方法不管是 ES6 还是 ES5 实现&#xff0c;都有同样的缺陷&#xff0c;就是只能实现特定的 object 的深度复制&#xff08;比如数组和函数&#xff09;&#xff0c;不能实现包装对象 Number&#xff0c;String &#xff0…

如何压缩图片大小?缩小图片体积跟我学

在日常生活中&#xff0c;我们常常需要处理图片&#xff0c;但是由于图片大小过大&#xff0c;常常带来许多不便。那么&#xff0c;如何压缩图片大小呢&#xff1f;下面就为大家介绍三个方法&#xff0c;让你轻松解决这个问题。 一、使用图片编辑软件 市面上有许多图片编辑软件…

使用HTTP代理上网安全吗?

HTTP代理是一种代理服务器&#xff0c;它可以充当客户端和服务器之间的中介&#xff0c;以帮助客户端访问服务器上的资源。虽然使用HTTP代理可以带来一些便利&#xff0c;但是在安全方面也存在一些问题。 HTTP代理的安全问题 窃取用户信息 如果HTTP代理服务器不受信任&#xff…

【计算机网络】https协议

目录 概念的准备 什么是加密 为什么需要加密 常见的加密方式 对称加密 非对称加密 数据摘要(数字指纹) 数字签名 https的工作过程 方案一&#xff1a;只使用对称加密 方案二&#xff1a;只使用非对称加密 方案三&#xff1a;双方都采用非对称加密 方案四&#xff…

【Spring Boot 源码学习】深入 FilteringSpringBootCondition

走近 AutoConfigurationImportFilter 引言往期内容主要内容1. match 方法2. ClassNameFilter 枚举类3. filter 方法 总结 引言 前两篇博文笔者带大家从源码深入了解了 Spring Boot 的自动装配流程&#xff0c;其中自动配置过滤的实现由于篇幅限制&#xff0c;还未深入分析。 …

2023国赛数学建模C题思路模型 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中&#xff0c;一般蔬菜类商品的保鲜期都比较短&#xff0c;且品相随销售时间的增加而变差&#xff0c; 大部分品种如当日未售出&#xff0c;隔日就无法再售。因此&#xff0c; 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

uniapp使用webview将页面转换成图片支持h5、app、小程序

uniapp使用webview将页面转换成图片支持h5、app、小程序 在uniapp项目中新建主页和webview页面 index.vue代码 <template><view><!-- 微信小程序要设置src为网络路径 --><web-view src"/hybrid/html/webview.html"></web-view><…

十四、内置模块path、邂逅Webpack和打包过程、css-loader

一、内置模块path &#xff08;1&#xff09;path介绍 &#xff08;2&#xff09; path常见的API 这里重点讲一下path.resolve()。 看上面的例子&#xff0c;从右往左开始解析&#xff0c;所以一开始解析的就是 /abc.txt &#xff0c;这个时候就会把它当成一个绝对路径了&am…

C#,数值计算——用于积分函数与方法的Stiel类的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Stiel { public class pp : UniVarRealValueFun, RealValueFun { public Stiel st { get; set; } null; public pp() { } public doubl…

探索数据库管理的利器 - PHPMyAdmin

有一个项目&#xff0c;后端由博主独自负责&#xff0c;最近需要将项目交接给另一位同事。在项目初期&#xff0c;博主直接在数据库中使用工具创建了相关表格&#xff0c;并在完成后利用PhpMyAdmin生成了一份数据字典&#xff0c;供团队使用。然而&#xff0c;在随后的开发过程…

JDK1.8下载、安装和环境配置使用

JDK1.8下载、安装和配置 下载安装包解压文件配置测试安装 下载安装包 链接地址 https://pan.baidu.com/s/1RF7-ulq0_qAelpXskDxdvA 提取码 d1y0解压文件 jdk1.8.0_181 配置 右击我的电脑&#xff0c;选择属性 2.点击高级系统设置 在系统变量区里点击&#xff1a;新建…

听书网站模板源码 懒人书院网站源码 苹果cms手机听书网站模版源码 支持手机端

苹果cms超漂亮UI高仿芒果TV听书网站模板带手机端。 手机版修改logo&#xff0c;ting_wap/images/logo.png 电脑版修改logo&#xff0c;ting_pc/img/logo.png 编辑推荐后台推荐5颗星。 新势力/热播榜单后台推荐9颗星。

3D基础:Y-Up和Z-Up

推荐&#xff1a;用 NSDT编辑器快速搭建可编程3D场景 所有 3D 工具都包含具有 X、Y 和 Z 轴的 3 维环境。 这些工具中的 X 轴方向相同&#xff0c;即使用前视图时从左到右的水平线。 但是&#xff0c;不同的 3D 工具可能具有不同的 Y 轴和 Z 轴方向。 有些3D工具是Y-Up的&…

西门子S7-200 SMART软件的下载安装步骤

文章目录 1、软件下载2、软件安装 1、软件下载 访问西门子官网&#xff1a;https://www.siemens.com/cn/zh.html&#xff0c;进入后在左上角产品与服务&#xff0c;依次进入该目录&#xff1a; 实在找不到在右上角放大镜直接搜索smart200 点击进入即可&#xff0c;然后就进入…

浅谈安科瑞ADL200仪表在爱尔兰工厂的应用

摘要&#xff1a;用户端消耗着整个电网80%的电能&#xff0c;用户端智能化用电管理对用户可靠、安全、节约用电有十分重要的意义。构建智能用电服务体系&#xff0c;推广用户端智能多功能仪表、智能用电管理终端等设备用电管理解决方案&#xff0c;实现电网与用户的双向良性互动…

第 2 章 线性表 (线性表的静态单链表存储结构(一个数组可生成若干静态链表)实现)

1. 背景说明 静态单链表实现类似于单链表&#xff0c;只是指针域变成了数组下标。 2. 示例代码 1) status.h /* DataStructure 预定义常量和类型头文件 */#ifndef STATUS_H #define STATUS_H/* 函数结果状态码 */ #define TRUE 1 /* 返回值为真 */ #define FALSE …

从策略到执行:实施战略定位的实战手册

有了完美的战略定位蓝图&#xff0c;但如果不知道如何执行&#xff0c;那一切都是徒劳。今天&#xff0c;我们将揭示从策略到执行的战略定位秘密路径。首先我们先明确一下战略定位的相关概念以及实施战略定位的用途。 战略定位是什么意思? 战略定位可以视为企业在市场或竞争环…