Spring_AMQP

文章目录

  • 一、SpringAMQP
  • 二、SpringAMQP应用
    • 2.1、消息发送
    • 2.2、消息接收

一、SpringAMQP

  SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。

  SpringAmqp的官方地址。
在这里插入图片描述
在这里插入图片描述
 
SpringAMQP提供了三个功能:

  • 自动声明队列、交换机及其绑定关系
  • 基于注解的监听器模式,异步接收消息
  • 封装了RabbitTemplate工具,用于发送消息

二、SpringAMQP应用

在父工程中引入依赖:

<!--AMQP依赖,包含RabbitMQ-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.1、消息发送

首先配置MQ地址,在publisher服务的application.yml中添加配置:

spring:rabbitmq:host: 192.168.150.101 # 主机名port: 5672 # 端口virtual-host: / # 虚拟主机username: itcast # 用户名password: 123321 # 密码

然后在publisher服务中编写测试类SpringAmqpTest,并利用RabbitTemplate实现消息发送:

package cn.itcast.mq.spring;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testpublic void testSimpleQueue() {// 队列名称String queueName = "simple.queue";// 消息String message = "hello, spring amqp!";// 发送消息rabbitTemplate.convertAndSend(queueName, message);}
}

2.2、消息接收

首先配置MQ地址,在consumer服务的application.yml中添加配置:

spring:rabbitmq:host: 192.168.150.101 # 主机名port: 5672 # 端口virtual-host: / # 虚拟主机username: itcast # 用户名password: 123321 # 密码

然后在consumer服务的包中新建一个类SpringRabbitListener,代码如下:

package cn.itcast.mq.listener;import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
public class SpringRabbitListener {@RabbitListener(queues = "simple.queue")public void listenSimpleQueueMessage(String msg) throws InterruptedException {System.out.println("spring 消费者接收到消息:【" + msg + "】");}
}

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

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

相关文章

PMP--二模--解题--51-60

文章目录 14.敏捷--术语表--完成的定义DoD--它是团队需要满足的所有标准的核对单&#xff0c;只有可交付成果满足该核对单才能视为准备就绪可供客户使用。51、 [单选] 在冲刺计划会议上&#xff0c;Scrum主管重申&#xff0c;如果在冲刺结束时敏捷项目团队正在构建的产品增量没…

Linux:进程(四)

目录 一、进程优先级 二、Linux调度与切换 1.背景 2.进程切换 3.Linux调度 一、进程优先级 背景&#xff1a;在计算机中&#xff0c;软硬件资源是有限的&#xff0c;而进程想要访问某一种资源&#xff0c;就得通过排队来保证访问资源的过程是有条不紊的。 Linux下对优先级…

华为HarmonyOS灵活高效的消息推送服务(Push Kit) - 1 简介

Push Kit&#xff08;推送服务&#xff09;是华为提供的消息推送平台&#xff0c;建立了从云端到终端的消息推送通道。所有HarmonyOS应用可通过集成Push Kit&#xff0c;实现向应用实时推送消息&#xff0c;使消息易见&#xff0c;构筑良好的用户关系&#xff0c;提升用户的感知…

Django 请求配置

http请求配置 请求流程 urls.py配置 from first_app import viewsurlpatterns [path(admin/, admin.site.urls),path(test/,views.first_test), ] views.py配置 from django.shortcuts import render,HttpResponse# Create your views here. def first_test(request):prin…

FLUX.1 ComfyUI:专属图像生成助手

FLUX.1 & ComfyUI&#xff1a;专属图像生成助手 FLUX.1 简介 FLUX.1 是由 黑森林实验室 (Black Forest Labs) 开发的一款高性能图像生成模型&#xff0c;分为以下三个版本&#xff1a; FLUX.1-pro (闭源): 最顶级的版本&#xff0c;具备极高的图像生成能力&#xff0c;支…

Python办公自动化教程(001):PDF内容提取

1、Pdfplumber介绍 pdfplumber的github地址&#xff1a; https://github.com/jsvine/pdfplumber/【介绍】&#xff1a;pdfplumber 是一个用于处理 PDF 文件的 Python 第三方库&#xff0c;它提供了一种方便的方式来提取 PDF 文件中的文本、表格和其他信息。【功能】&#xff…

2、StarGAN V2

2、StarGAN V2 StarGAN 论文链接&#xff1a;StarGAN StarGAN V2 论文链接&#xff1a;StarGAN V2 在介绍StarGAN V2之前&#xff0c;我们先对StarGAN有一定的了解&#xff0c;StarGAN V2只是在StarGAN的基础上做出了改进&#xff0c;基本的架构是没有变的&#xff0c;只是将…

SQL - 进阶语法(二)约束

1. SQL约束 约束用于约束表中的数据规则&#xff0c;如若存在违反行为&#xff0c;行为会被约束终止。 • NOT NULL 确保列不能有NULL值 如果添加一行新的数据&#xff0c;不能有null值&#xff0c;否则无法添加 新建表格 CREATE TABLE new_table( ID int NOT NULL, NAME …

尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)

目录&#xff1a; 自动化持续集成 &#xff08;1&#xff09;环境准备 &#xff08;2&#xff09;初始化 Jenkins 插件和管理员用户 &#xff08;3&#xff09;工作流程 &#xff08;4&#xff09;配置 Jenkins 构建工具 自动化持续集成 互联网软件的开发和发布&#xf…

zynq中断

通用中断控制器的作用&#xff1a; 它是一个中央处理中心&#xff0c;用于管理来自处理器核心&#xff08;PS&#xff09;和外设&#xff08;PL&#xff09;的中断。它可以启用、禁用、屏蔽和设置中断源的优先级。 中断处理流程&#xff1a; 所有中断源首先被集中到控制器。控…

AI模型对比研究员创意

大语言模型可以接受训练&#xff0c;完成许多任务。其中最广为人知的用途之一是作为生成式人工智能&#xff1a;当收到提示或被问到问题时&#xff0c;它们可以生成文本作为答复。例如&#xff0c;公开的大语言模型 ChatGPT 可以根据用户输入生成文章、诗歌和其他文本形式。 任…

C语言题目之单身狗2

文章目录 一、题目二、思路三、代码实现 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、题目 二、思路 第一步 在c语言题目之打印单身狗我们已经讲解了在一组数据中出现一个单身狗的情况&#xff0c;而本道题是出现两个单身狗的情况。根据一个数…

查询 B 站注册时间

有时候想看看自己玩 B 站多少年了&#xff0c;想知道自己什么时候注册的。 此外&#xff0c;据说注销 B 站账户的话也得提供详细注册日期。 ‍ 通过创作中心查看 登录网页版 B 站&#xff0c;点击右上角的创作中心&#xff0c;然后就能看到在 B 站多少天了&#xff1a; ​…

基于JAVA+SpringBoot+Vue的医院资源管理系统

基于JAVASpringBootVue的医院资源管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1f345; 哈…

Qt开发技巧(七)动态换图,QVideoWidget视频闪烁,Qt日志打印,系统消息处理,编译前后的操作,QSettings配置文件,屏幕自适应

1.动态换图 Qt开发时&#xff0c;有时候我们在界面上需要动态的切换图片&#xff0c;比如接到来自底层驱动的信号分成告警信号&#xff0c;正常信号&#xff0c;危险信号&#xff0c;在界面上使用QLabel通过贴图来表示不同的信号&#xff0c;这时候尽量使用setStyleSheet()&…

和可被k整除的子数组问题

目录 一题目&#xff1a; 二思路&#xff1a; 三代码&#xff1a; 一题目&#xff1a; leetcode链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二思路&#xff1a; 思路&#xff1a;前缀和第二种表示方式即循环列出方式同余定理取模修正&#xff1a; 还是通…

这可能又是一款 Java 程序员的必备插件了,无需解压直接编辑修改 jar 包内文件,神器!(附源码)

作为一名 Java 程序员&#xff0c;在维护一些古老的程序时&#xff0c;可能会遇到这种情况&#xff1a;项目依赖的 jar 包过于久远&#xff0c;已经没有源码了&#xff0c;但是有不得不修改的 bug 要处理。这时候就得想办法反编译 jar 包进行修改&#xff0c;并且重新打包&…

Java反序列化利用链篇 | CC1链的第二种方式-LazyMap版调用链

文章目录 CC1链的第二种方式-LazyMap版调用链LazyMap构造payloadCC1的调用链 系列篇其他文章&#xff0c;推荐顺序观看~ Java反序列化利用链篇 | JdbcRowSetImpl利用链分析Java反序列化利用链篇 | CC1链_全网最菜的分析思路Java反序列化利用链篇 | CC1链的第二种方式-LazyMap版…

网站设计中安全方面都需要有哪些考虑

网站设计中的安全性是一个多方面的问题&#xff0c;需要从多个角度进行考虑和实施。以下是一些关键的安全考虑因素&#xff1a; 数据加密&#xff1a; 使用SSL&#xff08;安全套接字层&#xff09;证书来建立加密连接&#xff0c;确保数据在传输过程中不被截获。定期更新SSL证…

低空经济火爆,稀缺无人机教员培训详解

随着科技的飞速发展和低空经济的日益火爆&#xff0c;无人机技术已广泛应用于航拍、农业、物流、救援、环境监测等多个领域&#xff0c;成为推动社会经济发展的新引擎。然而&#xff0c;无人机行业的快速发展也催生了对专业无人机教员的迫切需求。本文将从基础理论学习、实操技…