RabbitMQ(SpringAMQP)

本文介绍了如何在SpringBoot项目中使用SpringAMQP与RabbitMQ集成,包括添加依赖、配置MQ连接、创建生产者和消费者类,以及实现实时消息的发送和接收。
摘要由CSDN通过智能技术生成

一.SpringAMQP

Spring的官方基于RabbitMQ提供了一套消息收发的模板工具:SpringAMQP。并且基于SpringBoot对其实现了自动装配

SpringAMQP官方地址:SpringAMQP

SpringAMQP提供的功能:

  • 自动声明队列、交换机及其绑定关系

  • 基于注解的监听器模式,异步接收消息

  • 封装了RabbitTemplate工具,用于发送消息

二.客户端整合SpringAMQP测试

一.导入依赖:
 <!--AMQP依赖,包含RabbitMQ-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
二.rabbitMQ控制台新建一个队列:test.queue

三.在生产者服务模块yml配置MQ地址
spring:
  rabbitmq:
    host:  # 你的虚拟机IP
    port:  # 端口
    virtual-host:  # 虚拟主机
    username:  # 用户名
    password:  # 密码
四.在生产者模块编写测试类,并利用RabbitTemplate实现消息发送
package com.itheima.publisher;

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;

import java.util.HashMap;
import java.util.Map;

@SpringBootTest
public class SpringAmqpTest {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    void testSendMessage2Queue() {
        String queueName = "test.queue";
        String msg = "hello, amqp!";
        rabbitTemplate.convertAndSend(queueName, msg);
    }
}

test.queue队列中此时具有消息

五.在消费者服务模块yml配置MQ地址
spring:
  rabbitmq:
    host:  # 你的虚拟机IP
    port:  # 端口
    virtual-host:  # 虚拟主机
    username:  # 用户名
    password:  # 密码
六.在消费者服务模块编写监听类
package com.itheima.consumer.listeners;

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class SpringRabbitListener {

    @RabbitListener(queues = "test.queue")
    public void listenTestQueueMsg(String msg){
        System.out.println("spring消费者接收到生产者发送给test.queue队列的消息 " + msg);
    }
}
七.启动消费者模块后,运行生产者模块的发送消息测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值