rabbitmq结合springboot配置发送消息和消费消息

ops/2024/11/26 0:26:58/

在Spring Boot中集成RabbitMQ可以非常方便地实现消息的发送和接收。下面将简要介绍如何配置Spring Boot应用以使用RabbitMQ进行消息的发送与消费。

1. 添加依赖

首先,在你的pom.xml文件中添加Spring Boot对RabbitMQ的支持:

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

2. 配置RabbitMQ连接

application.propertiesapplication.yml中配置RabbitMQ的连接信息:

# application.properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

或者,如果你使用的是YAML格式:

# application.yml
spring:rabbitmq:host: localhostport: 5672username: guestpassword: guest

3. 定义消息队列、交换器和绑定

你可以通过Java配置来定义队列、交换器以及它们之间的绑定关系。例如:

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RabbitConfig {public static final String MESSAGE_QUEUE = "messageQueue";public static final String MESSAGE_EXCHANGE = "messageExchange";public static final String ROUTING_KEY = "routingKey";@Beanpublic Queue queue() {return new Queue(MESSAGE_QUEUE, true);}@Beanpublic TopicExchange exchange() {return new TopicExchange(MESSAGE_EXCHANGE);}@Beanpublic Binding binding(Queue queue, TopicExchange exchange) {return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);}
}

4. 发送消息

创建一个服务类来发送消息到RabbitMQ:

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class SenderService {private final RabbitTemplate rabbitTemplate;@Autowiredpublic SenderService(RabbitTemplate rabbitTemplate) {this.rabbitTemplate = rabbitTemplate;}public void sendMessage(String message) {rabbitTemplate.convertAndSend(RabbitConfig.MESSAGE_EXCHANGE, RabbitConfig.ROUTING_KEY, message);}
}

5. 接收消息

创建一个监听器来接收来自RabbitMQ的消息:

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
public class ReceiverService {@RabbitListener(queues = RabbitConfig.MESSAGE_QUEUE)public void receiveMessage(String message) {System.out.println("Received Message: " + message);}
}

6. 测试

最后,你可以通过调用SenderService中的sendMessage方法来测试消息是否能够成功发送,并且ReceiverService中的receiveMessage方法是否能够接收到消息。


http://www.ppmy.cn/ops/136710.html

相关文章

Charles抓包工具-笔记

摘要 概念&#xff1a; Charles是一款基于 HTTP 协议的代理服务器&#xff0c;通过成为电脑或者浏览器的代理&#xff0c;然后截取请求和请求结果来达到分析抓包的目的。 功能&#xff1a; Charles 是一个功能全面的抓包工具&#xff0c;适用于各种网络调试和优化场景。 它…

Linux的开发工具(二)

1.vim的基本操作 正常模式到插入模式 输入a 输入i 输入o 示例 输入iao下面的就会变成INSERT模式 插入模式到正常模式 按Esc键 正常模式到低行模式 shift&#xff1b; &#xff1a;w保存当前文件 &#xff1a;wq保存并退出 &#xff1a;q&#xff01;强制退出 2.vi…

【图像检测】深度学习与传统算法的区别(识别逻辑、学习能力、泛化能力)

识别逻辑 深度学习 使用了端到端的学习策略&#xff0c;直接学习从图像到检测结果的映射关系&#xff0c;自动提取特征&#xff0c;并且根据特征与特征之间的关系&#xff0c;计算出检测结果。 传统算法 则是人工提取特征&#xff0c;比如边缘特征&#xff0c;直线特征&#x…

输入三个整数x,y,z,请把这三个数由小到大输出。-多语言实现

目录 C 语言实现 Python 实现 Java 实现 Js 实现 题目&#xff1a;输入三个整数x,y,z&#xff0c;请把这三个数由小到大输出。 程序分析&#xff1a;我们想办法把最小的数放到x上&#xff0c;先将x与y进行比较&#xff0c;如果x>y则将x与y的值进行交换&#xff0c;然后…

网络安全概论

一、 网络安全是一个综合性的技术。在Internet这样的环境中&#xff0c;其本身的目的就是为了提供一种开放式的交互环境&#xff0c;但是为了保护一些秘密信息&#xff0c;网络安全成为了在开放网络环境中必要的技术之一。网络安全技术是随着网络技术的进步逐步发展的。 网络安…

transform学习

知识点讲解&#xff1a; scale 是 CSS 的 transform 属性的一部分&#xff0c;用于对元素进行比例缩放。 transform: scale(sx); transform: scale(sx, sy); /* sx&#xff1a;表示元素在 水平轴&#xff08;X轴&#xff09;的缩放比例。 sy&#xff08;可选&#xff09;&a…

SD NAND 的 SDIO在STM32上的应用详解

四.SDIO功能框图(重点) SDIO包含2个部分&#xff1a; ● SDIO适配器模块&#xff1a;实现所有MMC/SD/SD I/O卡的相关功能&#xff0c;如时钟的产生、命令和数据的传送。 ● AHB总线接口&#xff1a;操作SDIO适配器模块中的寄存器(由STM32控制SDIO外设)&#xff0c;并产生中断和…

golang实现TCP服务器与客户端的断线自动重连功能

1.服务端 2.客户端 生成服务端口程序: 生成客户端程序: 测试断线重连: 初始连接成功