Spring boot快速集成RabbitMQ

本文记录在Spring Boot项目中快速集成RabbitMQ的方法,包括在pom文件添加依赖、在配置文件添加配置信息,实现消息发送接口、接收处理消息等。还介绍了测试验证方法,以及RabbitListener和@RabbitHandler的区别。最后推荐深入了解的文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring boot快速集成RabbitMQ
本篇文章记录在现有的spring boot 项目里面,快速的基础rabbitmq

  1. pom 文件中添加对 spring-boot-starter-amqp 的支持
 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
  1. 在application.yml 配置文件中添加rabbitmq的配置信息
spring:
  rabbitmq:
    host: 127.0.0.1
    port: 5672
    username: guest
    password: guest
  1. RabbitMQ配置
@Configuration
public class RabbitMQConfig {

    public static final String TEST_QUEUE = "test";
    @Bean
    Queue workbenchQueue() {
//        new Queue 如果参数完全一致,会直接返回成功,不创建,不一致返回创建失败,不存在会新建
        return new Queue(TEST_QUEUE);
    }
}
  1. 实现一个简单的对外提供发送消息的接口。 通过postman 调接口发送消息
@RestController()
public class Sender {

    @Autowired
    private AmqpTemplate rabbitmqTemplate;

    @GetMapping("/sendMsg")
    public String sendMsg(String msg) {

        System.out.println("Sender:" +msg + " : " + Instant.now());
        this.rabbitmqTemplate.convertAndSend(RabbitMQConfig.TEST_QUEUE,msg);
        return "SUCCESS";
    }
}
  1. 消息接收,处理
/**
 * @author songxl
 * @create 2019-03-21 16:28
 * @desc 接听
 **/
@Component
@RabbitListener(queues = RabbitMQConfig.TEST_QUEUE)
public class Receiver {

    @RabbitHandler
    public void process(String msg){
        try {
            Thread.sleep(10000); // 为了更好的看到效果  做了10s 的延时
            System.out.println("Receiver:" + msg + " : " + Instant.now());
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}

  1. 测试及验证
    使用postman 手动调用上面暴露出来的接口,能后登录rabbitmq的后台 http://localhost:15672/#/queues 查看是不是有消息插入,同时10s 后是不是消失了
    控制台打印在这里插入图片描述

管理后台

RabbitListener 和@RabbitHandler 的区别
RabbitListener 可以标注在类上,也可以标注在方法上。
如果标注在方法上,表示有此方法来处理
如果标注在类上,表示由当前类来处理消息,具体的处理方法则由 RabbitHandler 来指定。
注:如果同时标注了多个方法,表示mq 消息 的content_type有多种,则通过MessageConverter 转换后的参数类型决定执行那个方法

以上只是自己做的一个简短的总结,如果想要更深入的了解rabbitmq的使用和原理,推荐看以下两篇文章

Spring Boot(八):RabbitMQ 详解
RabbitMQ中 exchange、route、queue的关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值