前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot整合RabbitMQ

SpringBoot整合RabbitMQ

原创
作者头像
会洗碗的CV工程师
发布2024-04-30 09:26:00
1490
发布2024-04-30 09:26:00
举报
文章被收录于专栏:消息中间件消息中间件

一、项目创建

SpringBoot整合RabbitMQ时,提供了工具类RabbitTemplate发送消息,编写生产者时只需要注入RabbitTemplate即可发送消息。

思路在于生产者一个项目,消费者一个项目。

在Spring Boot中整合RabbitMQ非常简单,因为Spring Boot提供了自动配置的支持。以下是一个简单的步骤指南,说明如何在Spring Boot项目中整合RabbitMQ:

二、创建交换机和队列

首先,创建完Spring Boot项目之后,引进RabbitMQ依赖,如下:

代码语言:xml
复制
<!-- 添加RabbitMQ依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

接下来编写配置文件:

代码语言:yml
复制
spring:
  rabbitmq:
    host: 192.168.66.100
    port: 5672
    username: guest
    password: guest
    virtual-host: /

然后在配置类编写创建交换机,创建队列,绑定交换机和队列这些,具体如下代码:

代码语言:javascript
复制
@Configuration
public class RabbitMQConfig {

    private final String EXCHANGE_NAME = "boot_topic_exchange";
    private final String QUEUE_NAME = "boot_queue";

    // 创建交换机
    @Bean(EXCHANGE_NAME)
    public Exchange getExchange(){
        return ExchangeBuilder
                // 交换机类型
                .topicExchange(EXCHANGE_NAME)
                // 是否持久化
                .durable(true)
                .build();

    }

    // 创建队列
    @Bean(QUEUE_NAME)
    public Queue getMessageQueue(){
        return new Queue(QUEUE_NAME);
    }

    // 交换机绑定队列
    @Bean
    public Binding bindingMessageQueue(@Qualifier(EXCHANGE_NAME) Exchange exchange,
                                       @Qualifier(QUEUE_NAME) Queue queue){
        return BindingBuilder
                .bind(queue)
                .to(exchange)
                .with("#.message.#")
                .noargs();

    }
}

三、编写生产者

最后,编写在测试编写测试方法,向生产者发送消息:代码如下:

代码语言:java
复制
@Test
public void testSendMessage(){
    /**
     * 发送消息
     * 参数1:交换机
     * 参数2:路由key
     * 参数3:要发送消息
     */
    rabbitTemplate.convertAndSend("boot_topic_exchange","message","他居然主动给我发消息咯?!");
}

执行之后查看管控台:

OK,已经可以确定消息已经发到RabbitMQ中了。

四、编写消费者

消费者只需写一个监听方法即可:代码如下:

代码语言:javascript
复制
@Component
public class Consumer {
    // 监听队列
    @RabbitListener(queues = "boot_queue")
    public void listen_message(String message){
        System.out.println("发送消息: "+message);
    }
}

启动项目,看一下是否成功获取消息:

OK,这里确实也是可以成功获取到RabbitMQ的消息了.

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、项目创建
  • 二、创建交换机和队列
  • 三、编写生产者
  • 四、编写消费者
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档