当前位置: 首页 > news >正文

Springboot 实践(13)spring boot 整合RabbitMq

前文讲解了RabbitMQ的下载和安装,此文讲解springboot整合RabbitMq实现消息的发送和消费。

1、创建web project项目,名称为“SpringbootAction-RabbitMQ”

2、修改pom.xml文件,添加amqp使用jar包

   <!--  RabbitMQ -->

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-amqp</artifactId>

        </dependency>

        <dependency>

        <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

        <dependency>

            <groupId>org.springframework.amqp</groupId>

            <artifactId>spring-rabbit-test</artifactId>

            <scope>test</scope>

        </dependency>

3、修改application.xml,配置服务器RabbitMQ服务器

spring:  

  rabbitmq:  #配置RabbitMQ

    host: 127.0.0.1

    port: 5672

    username: guest

    password: guest

    virtual-host: /

4、添加RabbitMQ配置文件

@Configuration//Rabbit配置类

public class RabbitConfig {

        private final String EXCHANGE_NAME = "boot_topic_exchange";

        private final String QUEUE_NAME = "boot_queue";

    //创建交换机

  @Bean("bootExchange")

  public Exchange getExchange()

    {

        return ExchangeBuilder

                .topicExchange(EXCHANGE_NAME)//交换机类型 ;参数为名字

                .durable(true)//是否持久化,true即存到磁盘,false只在内存上

                .build();

    }

    //创建队列

    @Bean("bootQueue")

    public Queue getMessageQueue()

    {

        return new Queue(QUEUE_NAME);

    }

    //交换机绑定队列

    @Bean

    //@Qualifier注解,使用名称装配进行使用

    public Binding bindMessageQueue(@Qualifier("bootExchange") Exchange exchange, @Qualifier("bootQueue") Queue queue)

    {

        return BindingBuilder

                .bind(queue)

                .to(exchange)

                .with("#.message.#")

                .noargs();

    }

}

5、添加producer生产者文件

@RestController

public class TestProducer {

    //注入RabbitTemplate工具类(rabbit内部的,可以发送消息)

    @Autowired

    private RabbitTemplate rabbitTemplate;

    @GetMapping("/sendMessage")

    public void testSendMessage()

    {

        /**

         * 发送消息

         * 参数1:交换机

         * 参数2:路由键

         * 参数3:要发送的消息

         */

        rabbitTemplate.convertAndSend("boot_topic_exchange","message","双十二开始了!");

    }

}

6、添加consumer消费者文件

//消费者

@Component

public class Consumer {

  //监听队列

  @RabbitListener(queues = "boot_queue")

  public void listenMessage(Message message)

  {

      System.out.println("接收消息:"+message);

  }

}

7、测试

启动RabbitMQ服务器,启动后界面如下图所示:

启动SpringbootAction-RabbitMQ项目,项目启动后,在浏览器中输入http://localhost:2885/swagger-ui.html,界面如下:

测试消息生产者和消费者

选择“test-producer”,点击“Excute”,执行producer

观察项目后台console,显示如下:

从上图看,producer可以正常发布信息,同时consumer也正常消费了信息。

相关文章:

Springboot 实践(13)spring boot 整合RabbitMq

前文讲解了RabbitMQ的下载和安装&#xff0c;此文讲解springboot整合RabbitMq实现消息的发送和消费。 1、创建web project项目&#xff0c;名称为“SpringbootAction-RabbitMQ” 2、修改pom.xml文件&#xff0c;添加amqp使用jar包 <!-- RabbitMQ --> <dependency&g…...

YoloV8改进策略:轻量级Slim Neck打造极致的YoloV8

文章目录 摘要Yolov8官方结果源码改进方法测试结果总结摘要 论文链接:https://arxiv.org/ftp/arxiv/papers/2206/2206.02424.pdf 作者研究了增强 CNN 学习能力的通用方法,例如 DensNet、VoVNet 和 CSPNet,然后根据这些方法的理论设计了 Slim-Neck 结构。 使用轻量级卷积…...

使用java代码给Excel加水印,代码全,进阶版

以下代码&#xff0c;亲测可以跑通 1、上一篇博客用了Apache POI库3.8的版本的形式对Excel加了水印&#xff0c;但是最近主线版本用了4.1.2的形式&#xff0c;由于为了保持版本的兼容性&#xff0c;下面有开发了Apache POI的4.1.2的版本号的方案。 pom文件为&#xff1a; <d…...

day37:网编day4,多点通信和并发服务器

一、广播接收方&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\ fprintf(stderr,"__%d__\n",__LINE__);\ perror(msg);\ }while(0)#define BRD_IP "192.168.114.255" #define BRD_PORT 8888int main(int argc, const char *argv[]) {//…...

STM32 硬件IIC 控制OLED I2C卡死问题

1. STM32L151C8T6 硬件IIC 控制OLED 屏&#xff0c;OLED 驱动IC CH1116G, 查阅OLED 数据手册 2. STM32 硬件IIC 初始化&#xff0c;用的标准库&#xff0c;固件库 // stm32l151c8t6 as master, oled control ic (CH1116G) as slave, and communicate by master iic2 void STM3…...

Redis图文指南

1、什么是 Redis&#xff1f; Redis&#xff08;REmote DIctionary Service&#xff09;是一个开源的键值对数据库服务器。 Redis 更准确的描述是一个数据结构服务器。Redis 的这种特殊性质让它在开发人员中很受欢迎。 Redis不是通过迭代或者排序方式处理数据&#xff0c;而是…...

C++17 std::string_view介绍与使用

std::string_view介绍 std::string_view是C17增加的新内容。它是一个轻量级的、只读的字符串视图&#xff0c;可以用来表示一个字符串或字符串的一部分。std::string_view可以提高代码的可读性、可维护性和性能。 std::string_view与std::string的主要区别在于&#xff0c;st…...

写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(下)

目录 极狐GitLab嵌入式开发场景解决方案 3.1 高可用部署与灾备 3.2 组织管理 3.3 分支策略 3.4 分支保护 3.5 推送规则 3.6 代码评审 3.7 数据保护 3.8 其他相关 本文来自 武让 极狐GitLab 高级解决方案架构师 &#x1f4a1; 前两篇文章&#xff0c;作者介绍了嵌入式开…...

Matlab论文插图绘制模板第110期—水平双向柱状图

在之前的文章中&#xff0c;分享了很多Matlab柱状图的绘制模板&#xff1a; 进一步&#xff0c;再来看一种特殊的柱状图&#xff1a;水平双向柱状图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自行下…...

【广州华锐互动】VR全景工厂虚拟导览,虚拟现实技术提升企业数字化信息管理水平

随着工业4.0的到来&#xff0c;VR工厂全景制作成为了越来越多工业企业的选择。传统的工厂管理方式往往存在诸多问题&#xff0c;如信息不对称、安全隐患等。为了解决这些问题&#xff0c;VR工厂全景制作应运而生&#xff0c;它通过结合虚拟现实现实技术和数据采集技术&#xff…...

idea 创建mybatis xml文件时找不到

1、File >Settings 如图 &#xff1a; 2、添加模板&#xff1a;如下图 3、添加xml模板 如下图&#xff1a; 模板内容&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//E…...

Python钢筋混凝土结构计算.pdf-混凝土构件计算

计算原理&#xff1a; 代码实现&#xff1a; #钢筋混凝土参数 def c_hrb(): global fcuk,HRB,Ec,fc,ft,ftk,Es,fy,fyp,fyk global a1,epsilon_cu fcukEcfcftftk0.0 HRBEsfyfypfyk0.0 #矩形应力图系数a1&#xff0c;C50以下为1.0 a11.0 #正截面混凝土极限压应变epsilon_cu&#…...

mysql5.7-基于docker-compose搭建主从同步

一、环境信息 系统版本&#xff1a;CentOS Linux release 7.9.2009 (Core) cat /etc/centos-release Docker版本&#xff1a;Docker version 20.10.6, build 370c289 docker --version Docker-compose版本&#xff1a;Docker Compose version v2.10.2 docker-compose --versio…...

【USRP】调制解调系列5:16QAM、32QAM、64QAM、256QAM、1024QAM、基于labview的实现

QAM 正交振幅键控是一种将两种调幅信号&#xff08;2ASK和2PSK&#xff09;汇合到一个信道的方法&#xff0c;因此会双倍扩展有效带宽&#xff0c;正交调幅被用于脉冲调幅。正交调幅信号有两个相同频率的载波&#xff0c;但是相位相差90度&#xff08;四分之一周期&#xff0c…...

Odoo|5分钟创建自定义的业务系统唯一序列号

在业务操作中&#xff0c;经常会遇到需要生成全局唯一序列号数据的情况&#xff0c;比如订单号、报价单号等。为了确保数据的唯一性和准确性&#xff0c;通常我们会使用Redis或其他分布式锁机制来实现。然而&#xff0c;很多人可能不知道&#xff0c;odoo框架本身提供了一个原生…...

mysql索引为什么提高查询速度(底层原理)

一、索引原理图 二、索引数据存储到硬盘而不是内存&#xff1f; 硬盘内存 成本低成本高 容量大容量小 读写速度一般读取速度快 断电后数据永久存储断电后数据清空 三、硬盘数据为什么要读取到内存&#xff1f;为啥不直接…...

算法通关村——位运算在查找重复元素中的妙用

用4KB内存寻找重复元素 给定一个数组&#xff0c;包含从1到N的整数&#xff0c;N最大为32000&#xff0c;数组可能还有重复值&#xff0c;且N的取值不定&#xff0c;若只有4KB的内存可用&#xff0c;该如何打印数组中所有重复元素。 如果不要求使用4KB&#xff0c;最简单就是…...

使用环境中的视觉地标和扩展卡尔曼滤波器定位移动机器人研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

【python基础知识】5.for循环和while循环

文章目录 前言for...in...循环语句for循环&#xff1a;空房间for循环&#xff1a;一群排队办业务的人range()函数for循环&#xff1a;办事流程 while循环while循环&#xff1a;放行条件while循环&#xff1a;办事流程 两种循环对比 前言 上一关&#xff0c;我们学习了两种新的…...

STM32CUBEMX_创建时间片轮询架构的软件框架

STM32CUBEMX_创建时间片轮询架构的软件框架 说明&#xff1a; 1、这种架构避免在更新STM32CUBEMX配置后把用户代码清除掉 2、利用这种时间片的架构可以使得代码架构清晰易于维护 创建步骤&#xff1a; 1、使用STM32CUBEMX创建基础工程 2、新建用户代码目录 3、构建基础的代码框…...

Ostrakon-VL扫描终端效果:不同材质价签(纸质/塑料/金属)识别

Ostrakon-VL扫描终端效果&#xff1a;不同材质价签&#xff08;纸质/塑料/金属&#xff09;识别 1. 像素特工&#xff1a;Ostrakon-VL扫描终端介绍 这是一个基于Ostrakon-VL-8B多模态大模型开发的Web交互终端&#xff0c;专门针对零售与餐饮场景优化。与传统工业级UI不同&…...

Qwen2-VL-2B-Instruct实操手册:本地化安全机制与temp_images权限控制说明

Qwen2-VL-2B-Instruct实操手册&#xff1a;本地化安全机制与temp_images权限控制说明 1. 项目核心&#xff1a;理解GME-Qwen2-VL模型 你可能听说过很多能“看图说话”的AI模型&#xff0c;但今天要介绍的 GME-Qwen2-VL-2B-Instruct 有点不一样。它不是一个和你聊天的机器人&a…...

为Qwen-VL“点亮”视觉思维:从注意力热力图洞察多模态对齐的深层逻辑

1. 理解Qwen-VL的视觉思维机制 当你第一次看到Qwen-VL这类视觉语言模型时&#xff0c;可能会好奇它究竟是如何"看"图片的。想象一下&#xff0c;你正在教一个小朋友看图说话&#xff1a;小朋友会先扫视整张图片&#xff0c;然后目光停留在某些关键区域&#xff0c;最…...

解决SlowFast环境配置中的‘No module named torch._six’等疑难杂症:从修改压缩包到调整import路径

SlowFast环境配置深度排障指南&#xff1a;从源码修改到路径调整的完整解决方案 在视频理解领域&#xff0c;SlowFast作为Facebook Research开源的优秀框架&#xff0c;凭借其双路径网络设计在动作识别任务中表现出色。然而&#xff0c;许多开发者在环境配置阶段就会遭遇各种&q…...

跨平台兼容技术选型:轻量级Android应用Windows运行解决方案

跨平台兼容技术选型&#xff1a;轻量级Android应用Windows运行解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化办公与多设备协同的趋势下&#xff0c;…...

如何用AI将视频从24FPS提升到120FPS?Video2X帧插值技术全解析

如何用AI将视频从24FPS提升到120FPS&#xff1f;Video2X帧插值技术全解析 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/v…...

Python自动化测试框架入门教程

Python自动化测试框架入门教程&#xff1a;从零开始掌握Pytest和unittest &#x1f4dd; 摘要 自动化测试是现代软件开发不可或缺的一部分&#xff0c;能够显著提高代码质量和开发效率。本文将带你从零开始了解Python主流自动化测试框架——Pytest和unittest&#xff0c;包含…...

Windows系统优化终极指南:用Win11Debloat免费快速提升性能

Windows系统优化终极指南&#xff1a;用Win11Debloat免费快速提升性能 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter an…...

开源大模型部署案例:Pixel Language Portal镜像免配置快速上手教程

开源大模型部署案例&#xff1a;Pixel Language Portal镜像免配置快速上手教程 1. 产品概览 Pixel Language Portal&#xff08;像素语言跨维传送门&#xff09;是一款基于Tencent Hunyuan-MT-7B大模型构建的创新翻译工具。与传统翻译软件不同&#xff0c;它将语言转换过程设…...

化整为零、分而治之、异步编排:一文读懂现代并发的底层心法

LongAdder&#xff1a;化整为零&#xff0c;热点分散 在Java多线程编程中&#xff0c;‌原子变量&#xff08;如AtomicLong&#xff09;‌通过CAS操作实现线程安全的累加。然而&#xff0c;在高并发场景下&#xff0c;大量线程争抢同一原子变量会引发严重的‌缓存一致性问题‌。…...