在本文中,我们将介绍如何在Spring Boot应用中使用RabbitMQ实现消息的发送与接收。我们将创建两个服务,一个用于发送消息(Publisher服务),一个用于接收消息(Consumer服务)。首先,我们需要在这两个服务中配置RabbitMQ地址,接着编写发送和接收消息的代码。
要引入spring-boot-starter-amqp依赖才能开始后续操作
1. 配置RabbitMQ地址
首先,在Publisher服务的application.yml
文件中添加RabbitMQ的配置:
spring:
rabbitmq:
host: # 你的虚拟机IP
port: # 端口
virtual-host: # 虚拟主机
username: # 用户名
password: # 密码
2. 编写消息发送测试类
在Publisher服务中,我们需要编写一个测试类SpringAmqpTest
,并利用RabbitTemplate
实现消息的发送:
import org.junit.jupiter.api.Test;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class SpringAmqpTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void testSimpleQueue() {
// 队列名称
String queueName = "simple.queue";
// 消息
String message = "hello, spring amqp!";
// 发送消息
rabbitTemplate.convertAndSend(queueName, message);
}
}
运行测试后,打开控制台,你将看到消息已经成功发送到队列中。
3. 实现消息接收
同样地,在Consumer服务的application.yml
文件中添加RabbitMQ的配置:
spring:
rabbitmq:
host: # 你的虚拟机IP
port: # 端口
virtual-host: # 虚拟主机
username: # 用户名
password: # 密码
接下来,在Consumer服务的com.itheima.consumer.listener
包中新建一个类SpringRabbitListener
,用于监听队列并处理消息:
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class SpringRabbitListener {
// 利用RabbitListener来声明要监听的队列信息
// 一旦监听的队列中有了消息,就会推送给当前服务,调用当前方法,处理消息。
// 可以看到方法体中接收的就是消息体的内容
@RabbitListener(queues = "simple.queue")
public void listenSimpleQueueMessage(String msg) {
System.out.println("spring 消费者接收到消息:【" + msg + "】");
}
}
运行后,当队列simple.queue
中有消息时,SpringRabbitListener
中的listenSimpleQueueMessage
方法将被调用,并输出接收到的消息内容。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 使用RabbitMQ在Spring Boot入门实现简单的消息的发送与接收
发表评论 取消回复