iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中SpringBoot如何整合RabbitMQ
  • 188
分享到

Java中SpringBoot如何整合RabbitMQ

2023-06-05 04:06:07 188人浏览 独家记忆
摘要

这篇文章主要为大家展示了“Java中SpringBoot如何整合RabbitMQ”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中springBoot如何整合RabbitMQ”这篇文章吧。

这篇文章主要为大家展示了“Java中SpringBoot如何整合RabbitMQ”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中springBoot如何整合RabbitMQ”这篇文章吧。

如果要进行 RabbitMQ 整合的时候一定要注意以下几个概念:交换空间、虚拟主机、队列信息。本次为了方便起见将项目分为 两个:RabbitMQ-Consumer、RabbitMQ-Producer。

【两个项目】将 rabbitmq 的依赖支持包拷贝到项目之中;

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

【microboot-rabbitmq-producer、microboot-rabbitmq-consumer】修改 application.yml 配置文件,追加 rabbitmq 的相关配置项:

server:  port: 80spring:  messages:    basename: i18n/Messages,i18n/Pages  rabbitmq:    addresses: rabbitmq-server    username: studyjava    passWord: hello    virtual-host: /

 3、【microboot-rabbitmq-producer】建立一个消息的发送接口:

package cn.study.microboot.producer;public interface IMessageProducerService {    public void sendMessage(String msg) ;}

【microboot-rabbitmq-producer】为了可以正常使用 RabbitMQ 进行消息处理,你还需要做一个消息生产配置类;

package cn.study.microboot.config;import org.springframework.amqp.core.Binding;import org.springframework.amqp.core.BindingBuilder;import org.springframework.amqp.core.DirectExchange;import org.springframework.amqp.core.Queue;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class ProducerConfig {    public static final String EXCHANGE = "study.microboot.exchange"; // 交换空间名称    public static final String ROUTINGKEY = "study.microboot.routingkey"; // 设置路由key    public static final String QUEUE_NAME = "study.microboot.queue"; // 队列名称    @Bean    public Binding bindingExchangeQueue(DirectExchange exchange,Queue queue) {        return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY) ;    }    @Bean    public DirectExchange getDirectExchange() { // 使用直连的模式        return new DirectExchange(EXCHANGE, true, true);    }    @Bean    public Queue queue() { // 要创建的队列信息        return new Queue(QUEUE_NAME);    }}

【microboot-rabbitmq-producer】创建消息服务的实现子类:

package cn.study.microboot.producer.impl;import javax.annotation.Resource;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.stereotype.Service;import cn.study.microboot.config.ProducerConfig;import cn.study.microboot.producer.IMessageProducerService;@Servicepublic class MessageProducerServiceImpl implements IMessageProducerService {    @Resource    private RabbitTemplate rabbitTemplate;    @Override    public void sendMessage(String msg) {        this.rabbitTemplate.convertAndSend(ProducerConfig.EXCHANGE,                ProducerConfig.ROUTINGKEY, msg);    }}

【microboot-rabbitmq-consumer】依然需要做一个消费者的配置程序类,而这个程序类里面主要的目的依然是设置交换空间、 路由 KEY 等信息。

package cn.study.microboot.config;import org.springframework.amqp.core.Binding;import org.springframework.amqp.core.BindingBuilder;import org.springframework.amqp.core.DirectExchange;import org.springframework.amqp.core.Queue;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class ConsumerConfig {    public static final String EXCHANGE = "study.microboot.exchange"; // 交换空间名称    public static final String ROUTINGKEY = "study.microboot.routingkey"; // 设置路由key    public static final String QUEUE_NAME = "study.microboot.queue"; // 队列名称    @Bean    public Queue queue() { // 要创建的队列信息        return new Queue(QUEUE_NAME);    }    @Bean    public DirectExchange getDirectExchange() { // 使用直连的模式        return new DirectExchange(EXCHANGE, true, true);    }    @Bean    public Binding bindingExchangeQueue(DirectExchange exchange,Queue queue) {        return BindingBuilder.bind(queue).to(exchange).with(ROUTINGKEY) ;    }}

【microboot-rabbitmq-consumer】实现监听处理类:

package cn.study.microboot.consumer;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Service;@Servicepublic class MessageConsumerService {    @RabbitListener(queues="study.microboot.queue")    public void receiveMessage(String text) {    // 进行消息接收处理        System.err.println("【*** 接收消息 ***】" + text);    }}

【microboot-rabbitmq-producer】创建一个测试类实现消息的发送处理。

package cn.study.microboot.test;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.WEB.WebAppConfiguration;import cn.study.microboot.StartSpringBootMain;import cn.study.microboot.producer.IMessageProducerService;@SpringBootTest(classes = StartSpringBootMain.class)@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfigurationpublic class TestActiveMQ {    @Resource    private IMessageProducerService messageProducer;    @Test    public void testSend() throws Exception {        for (int x = 0; x < 100; x++) {            this.messageProducer.sendMessage("study - " + x);        }    }}

【microboot-rabbitmq-consumer】编写消息接收测试类,这里面不需要编写代码,只需要做一个休眠即可:

package cn.study.microboot;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.web.WebAppConfiguration;@SpringBootTest(classes = StartSpringBootMain.class)@RunWith(SpringJUnit4ClassRunner.class)@WebAppConfigurationpublic class AppTest {    @Test    public void testStart() throws Exception {        Thread.sleep(Long.MAX_VALUE);    }}

整体进行项目开发之中整合的处理步骤还是简单,但是千万要注意,由于是第一次整合处理,所以将生产者与消费者的配置 类分开了,实际上这两个类的作用是完全一样的。

以上是“Java中SpringBoot如何整合RabbitMQ”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Java中SpringBoot如何整合RabbitMQ

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

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

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

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

下载Word文档
猜你喜欢
  • Java中SpringBoot如何整合RabbitMQ
    这篇文章主要为大家展示了“Java中SpringBoot如何整合RabbitMQ”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中SpringBoot如何整合RabbitMQ”这篇文章吧。...
    99+
    2023-06-05
  • SpringBoot中怎样整合RabbitMQ
    本篇文章给大家分享的是有关SpringBoot中怎样整合RabbitMQ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、环境准备1、pom依赖<!-- 父工程...
    99+
    2023-06-20
  • Springboot怎么整合RabbitMQ
    本篇文章给大家分享的是有关Springboot怎么整合RabbitMQ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。准备工作15minIDEAmaven 3.0在开始构建项目之...
    99+
    2023-06-19
  • springboot整合消息队列RabbitMQ
    前言: RabbitMQ常用的三种Exchange Type:fanout、direct、topic。 fanout:把所有发送到该Exchange的消息投递到所有与它绑定的队列中。...
    99+
    2024-04-02
  • Java SpringBoot如何整合ActiveMQ
    Java SpringBoot如何整合ActiveMQ,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、 如果要想在项目之中去使用 ActiveMQ 组件,则应...
    99+
    2023-06-05
  • SpringBoot如何整合RabbitMQ实现死信交换机
    本篇内容介绍了“SpringBoot如何整合RabbitMQ实现死信交换机”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!环境Windows1...
    99+
    2023-07-02
  • springboot整合RabbitMQ中的TTL实例代码
    目录TTL简介配置类代码生产者代码消息消费者代码验证代码TTL简介 TTL 是什么呢?TTL 是 RabbitMQ 中一个消息或者队列的属性,表明一条消息或者该队列中的所有消息的最大...
    99+
    2024-04-02
  • springBoot整合rabbitMQ的方法详解
    引入pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave...
    99+
    2024-04-02
  • 详解SpringBoot整合RabbitMQ如何实现消息确认
    目录简介生产者消息确认介绍流程配置ConfirmCallbackReturnCallback注册ConfirmCallback和ReturnCallback消费者消息确认介绍手动确认...
    99+
    2024-04-02
  • Springboot中如何整合Activemq
    本篇内容介绍了“Springboot中如何整合Activemq”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 导入整合所需要的依赖:<...
    99+
    2023-06-08
  • springboot中如何整合log4g2
    这篇文章主要介绍了springboot中如何整合log4g2,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.导入jarspringboot默认是用logback的日志框架的...
    99+
    2023-06-25
  • Springboot整合Rabbitmq之Confirm和Return机制
    目录前言为什么会有ConfirmSpringboot 整合 Mq 实现 Confirm 监听机制依赖引入增加配置文件,设定连接信息配置队列、交换机,以及对其进行绑定编写mq消息发送服...
    99+
    2024-04-02
  • SpringBoot整合RabbitMQ消息队列的完整步骤
    SpringBoot整合RabbitMQ 主要实现RabbitMQ以下三种消息队列: 简单消息队列(演示direct模式) 基于RabbitMQ特性的延时消息队列 ...
    99+
    2024-04-02
  • springboot整合RabbitMQ发送短信的实现
    目录RabbitMQ安装和运行MQ服务器设置创建用户创建虚拟机实现发送短信rabbit-mqservice-baseservice-core中发送消息service-sms中监听消息...
    99+
    2024-04-02
  • SpringBoot中如何整合Dubbo zookeeper
    本篇内容介绍了“SpringBoot中如何整合Dubbo zookeeper”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!docker pu...
    99+
    2023-06-08
  • SpringBoot中如何整合Lettuce redis
    这篇文章主要介绍“SpringBoot中如何整合Lettuce redis”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot中如何整合Lettuce redis”文章能帮助大家解决问...
    99+
    2023-06-08
  • Java SpringBoot整合SpringCloud
    目录1. SpringCloud特点2. 分布式系统的三个指标CAP3. Eureka4. SpringCloud Demo4.1 registry4.2 api4.3 provid...
    99+
    2024-04-02
  • SpringBoot整合RabbitMQ的5种模式实战
    目录一、环境准备二、简单模式三、工作队列模式四、广播模式(Fanout)五、直连模式(Direct)六、通配符模式(Topic)一、环境准备 1、pom依赖 <!-- 父...
    99+
    2024-04-02
  • SpringBoot如何整合chatGPT
    这篇文章主要讲解了“SpringBoot如何整合chatGPT”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot如何整合chatGPT”吧!1 添加依赖  ...
    99+
    2023-07-06
  • springboot如何整合elasticsearch
    目录前言不同方式演示简单看一下集成先决配置Spring Data Elasticsearch方式ElasticsearchRestTemplate方式总结前言 推荐首先查看sprin...
    99+
    2023-05-18
    springboot整合elasticsearch springboot elasticsearch
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作