广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot整合消息队列RabbitMQ的方法是什么
  • 247
分享到

SpringBoot整合消息队列RabbitMQ的方法是什么

2023-07-05 14:07:35 247人浏览 泡泡鱼
摘要

本篇内容介绍了“SpringBoot整合消息队列RabbitMQ的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介在spring

本篇内容介绍了“SpringBoot整合消息队列RabbitMQ的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    简介

    spring项目中,可以使用Spring-Rabbit去操作RabbitMQ

    尤其是在Spring Boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用RabbitTemplate发送消息,使用注解接收消息。

    一般在开发过程中:

    生产者工程:

    • application.yml文件配置RabbitMQ相关信息;

    • 在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定

    • 注入RabbitTemplate对象,通过RabbitTemplate对象发送消息到交换机

    消费者工程:

    • application.yml文件配置RabbitMQ相关信息

    • 创建消息处理类,用于接收队列中的消息并进行处理

    生产端

    创建生产者SpringBoot工程(Maven
    2. 引入start,依赖坐标
    <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-amqp</artifactId>
         </dependency>

    编写yml配置,基本信息配置
    4. 定义交换机,队列以及绑定关系的配置类
    5. 注入RabbitTemplate,调用方法,完成消息发送

    添加依赖

    修改pom.xml文件内容为如下:

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="Http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.1.4.RELEASE</version>    </parent>    <groupId>com.itheima</groupId>    <artifactId>springboot-rabbitmq-producer</artifactId>    <version>1.0-SNAPSHOT</version>    <dependencies>        <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>        </dependency>    </dependencies></project>

    启动类

    package com.itheima.rabbitmq;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ProducerApplication {    public static void main(String[] args) {        SpringApplication.run(ProducerApplication.class);    }}

    配置RabbitMQ

    配置文件

    创建application.yml,内容如下:

    spring:
      rabbitmq:
        host: localhost
        port: 5672
        virtual-host: /itcast
        username: heima
        passWord: heima

    绑定交换机和队列

    创建RabbitMQ队列与交换机绑定的配置类com.itheima.rabbitmq.config.RabbitMQConfig

    package com.itheima.rahhitmq.config;import org.springframework.amqp.core.*;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configuration /// 配置类public class RabbitMQConfig {    public static final String EXCHAGE_NAME = "boot_topic_exchange";    public static final String QUEUE_NAME = "boot_queue";    // 交换机    @Bean("bootExchange")    public Exchange bootExchange(){        // 构建交换机对象        return ExchangeBuilder.topicExchange(EXCHAGE_NAME).durable(true).build();    }    //Queue 队列    @Bean("bootQueue")    public Queue bootQueue(){        return QueueBuilder.durable(QUEUE_NAME).build();    }    //队列和交换机的关系 Binding        @Bean    public Binding bindQueueExchange(@Qualifier("bootQueue") Queue queue, @Qualifier("bootExchange") Exchange exchange){        return BindingBuilder.bind(queue).to(exchange).with("boot.#").noargs();    }}

    搭建消费者工程

    创建工程

    生产端

    创建生产者SpringBoot工程

    引入start,依赖坐标

    org.springframework.boot

    spring-boot-starter-amqp

    编写yml配置,基本信息配置
    定义交换机,队列以及绑定关系的配置类
    注入RabbitTemplate,调用方法,完成消息发送

    添加依赖

    修改pom.xml文件内容为如下:

    <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.1.4.RELEASE</version>    </parent>    <groupId>com.itheima</groupId>    <artifactId>springboot-rabbitmq-consumer</artifactId>    <version>1.0-SNAPSHOT</version>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-amqp</artifactId>        </dependency>    </dependencies></project>

    启动类

    package com.itheima.rabbitmq;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ConsumerApplication {    public static void main(String[] args) {        SpringApplication.run(ConsumerApplication.class);    }}

    配置RabbitMQ

    创建application.yml,内容如下:

    spring:
      rabbitmq:
        host: localhost
        port: 5672
        virtual-host: /itcast
        username: heima
        password: heima

    消息监听处理类

    编写消息监听器com.itheima.rabbitmq.listener.MyListener

    package com.itheima.rabbitmq.listener;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Component;@Componentpublic class MyListener {        @RabbitListener(queues = "item_queue")    public void myListener1(String message){        System.out.println("消费者接收到的消息为:" + message);    }}

    测试

    在生产者工程springboot-rabbitmq-producer中创建测试类,发送消息:

    package com.itheima.rabbitmq;import com.itheima.rabbitmq.config.RabbitMQConfig;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)@SpringBootTestpublic class RabbitMQtest {    @Autowired    private RabbitTemplate rabbitTemplate;    @Test    public void test(){        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "商品新增,routing key 为item.insert");        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.update", "商品修改,routing key 为item.update");        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.delete", "商品删除,routing key 为item.delete");    }}

    先运行上述测试程序(交换机和队列才能先被声明和绑定),然后启动消费者;在消费者工程springboot-rabbitmq-consumer中控制台查看是否接收到对应消息。

    SpringBoot提供了快速整合RabbitMQ的方式

    基本信息再yml中配置,队列交互机以及绑定关系在配置类中使用Bean的方式配置

    生产端直接注入RabbitTemplate完成消息发送

    消费端直接使用@RabbitListener完成消息接收

    “SpringBoot整合消息队列RabbitMQ的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    --结束END--

    本文标题: SpringBoot整合消息队列RabbitMQ的方法是什么

    本文链接: https://www.lsjlt.com/news/352105.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • SpringBoot整合消息队列RabbitMQ的方法是什么
      本篇内容介绍了“SpringBoot整合消息队列RabbitMQ的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介在Spring...
      99+
      2023-07-05
    • springboot整合消息队列RabbitMQ
      前言: RabbitMQ常用的三种Exchange Type:fanout、direct、topic。 fanout:把所有发送到该Exchange的消息投递到所有与它绑定的队列中。...
      99+
      2022-11-13
    • SpringBoot整合RabbitMQ消息队列的完整步骤
      SpringBoot整合RabbitMQ 主要实现RabbitMQ以下三种消息队列: 简单消息队列(演示direct模式) 基于RabbitMQ特性的延时消息队列 ...
      99+
      2022-11-12
    • java中RabbitMQ消息队列指的是什么
      这篇文章主要介绍了java中RabbitMQ消息队列指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明RabbitMQ是用Erlang实现的一个高并发高可靠AM...
      99+
      2023-06-15
    • 消息队列 RabbitMQ 与 Spring 整合使用的实例代码
      一、什么是 RabbitMQRabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送...
      99+
      2023-05-31
      rabbitmq spring
    • Springboot整合ActiveMQ实现消息队列的过程浅析
      目录pom中导入坐标书写yml配置业务层代码监听器代码业务层代码确保你启动了自己电脑的activemq。 pom中导入坐标 <dependency> ...
      99+
      2023-02-10
      Springboot整合ActiveMQ Springboot ActiveMQ消息队列
    • 消息队列的特点是什么
      本篇内容主要讲解“消息队列的特点是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“消息队列的特点是什么”吧!什么是消息队列?消息队列( Message Queue )是一种...
      99+
      2023-06-04
    • RabbitMQ是怎么确定消息是否投递到队列中的
      本篇内容介绍了“RabbitMQ是怎么确定消息是否投递到队列中的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
      99+
      2022-10-19
    • WCF消息队列的解决方案是什么
      WCF消息队列的解决方案是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。消息就是信息的来源,在WCF中消息队列分为公共队列、专用队列、管理队列、响应队列四种,下面我们就简单...
      99+
      2023-06-17
    • PHP消息队列实现及运用的方法是什么
      这篇文章主要讲解了“PHP消息队列实现及运用的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP消息队列实现及运用的方法是什么”吧!消息队列的概念、原理、实现方式概念队列结构的一...
      99+
      2023-07-04
    • MQ消息队列的概念是什么
      这篇文章主要介绍“MQ消息队列的概念是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MQ消息队列的概念是什么”文章能帮助大家解决问题。 一、消息队列使用场景 ...
      99+
      2022-10-19
    • Java中消息队列的作用是什么
      这篇文章主要讲解了“Java中消息队列的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中消息队列的作用是什么”吧!  这些接口之间耦合比较严重,每新增一个下游功能...
      99+
      2023-06-16
    • SpringBoot整合aws的方法是什么
      这篇文章主要讲解了“SpringBoot整合aws的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot整合aws的方法是什么”吧!引入依赖  &...
      99+
      2023-06-21
    • SpringBoot整合RocketMQ的方法是什么
      这篇文章主要介绍了SpringBoot整合RocketMQ的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合RocketMQ的方法是什么文章都会有所收获,下面我们一起来看看吧。1...
      99+
      2023-07-05
    • springboot整合mongodb的方法是什么
      这篇文章主要介绍“springboot整合mongodb的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot整合mongodb的方法是什么”文章能帮助大家解决问题。1.mo...
      99+
      2023-07-05
    • SpringBoot整合Swagger的方法是什么
      本文小编为大家详细介绍“SpringBoot整合Swagger的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot整合Swagger的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
      99+
      2023-07-06
    • SpringBoot整合Jackson的方法是什么
      这篇文章主要介绍了SpringBoot整合Jackson的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合Jackson的方法是什么文章都会有所收获,下面我们一起来看看吧。一、J...
      99+
      2023-07-05
    • SpringBoot整合Lettuce redis的方法是什么
      这篇文章主要介绍了SpringBoot整合Lettuce redis的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合Lettuce redis的方法是什么文章都会有所收获,下面...
      99+
      2023-07-06
    • springboot hutool整合email的方法是什么
      本篇内容主要讲解“springboot hutool整合email的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot hutool整合email的...
      99+
      2023-07-05
    • java消息队列mq的使用场景是什么
      Java消息队列(MQ)的使用场景主要包括以下几个方面:1. 异步通信:当系统中的不同模块之间需要进行异步通信时,可以使用消息队列来...
      99+
      2023-10-09
      java
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作