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

Spring Boot 整合 RabbitMQ

作者头像
张小驰出没
发布2021-12-06 16:44:09
1.7K1
发布2021-12-06 16:44:09
举报

Spring Boot 整合 RabbitMQ

简介

在Spring项目中,可以使用Spring-Rabbit去操作RabbitMQ

尤其是在spring boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用RabbitTemplate发送消息,使用注解接收消息。

一般在开发过程中: 生产者工程:

  1. application.yml文件配置RabbitMQ相关信息;
  2. 在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定
  3. 注入RabbitTemplate对象,通过RabbitTemplate对象发送消息到交换机

消费者工程:

  1. application.yml文件配置RabbitMQ相关信息
  2. 创建消息处理类,用于接收队列中的消息并进行处理

搭建生产者工程

1.创建生产者项目

创建一个Spring Boot项目:

1
1
2
2

2.导入依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

3.配置项目

3.1 配置文件
代码语言:javascript
复制
#端口
server.port=8111

#rabbitmq配置
#这里是自己的ip地址
spring.rabbitmq.host=192.168.57.129   
spring.rabbitmq.port=5672
#自己设置的有权限的账号密码
spring.rabbitmq.username=admin
spring.rabbitmq.password=admin
3.2 RabbitMQ配置类
代码语言:javascript
复制
@Configuration
public class RabbitMQConfig {
    //交换机名称
    public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";
    //队列名称
    public static final String ITEM_QUEUE = "item_queue";
    //声明交换机
    @Bean("itemTopicExchange")
    public Exchange topicExchange(){
        return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();
    }
    //声明队列
    @Bean("itemQueue")
    public Queue itemQueue(){
        return QueueBuilder.durable(ITEM_QUEUE).build();
    }
    //绑定队列和交换机
    @Bean
    public Binding itemQueueExchange(@Qualifier("itemQueue") Queue queue,
                                     @Qualifier("itemTopicExchange") Exchange exchange){
        return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
    }
}
3.3 发送消息控制类
代码语言:javascript
复制
@RestController
public class SendMsgController {
    //注入rabbitmq模板
    @Autowired
    private RabbitTemplate rabbitTemplate;
    @GetMapping("/sendmsg")
    public String sendMsg(@RequestParam String msg,@RequestParam String key){
        /**
         * 发送消息
         *  参数1:交换机名称
         *  参数2:路由 key
         *  参数3:发送的消息
         */
        rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE,key,msg);
        //返回消息
        return "发送消息成功";
    }
}

搭建消费者工程

1.创建生产者项目

创建一个Spring Boot项目:

3
3
4
4

2.导入依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

3.创建消费者类

代码语言:javascript
复制
@Component
public class MyListener {
    @RabbitListener(queues = "item_queue")
    public void msg(String msg){
        System.out.println("消费者运行:"+msg);
    }
}

运行测试

路径为:localhost:8111/sendmsg?msg=这是一个测试鸭&key=item.test

  • 先启动生产者工程
  • 访问这个路径,会显示发送消息成功 (这时候 队列 和 交换机 都已经创建了)
  • 启动消费者工程
  • 再次访问路径
  • 查看结果
5
5
6
6
7
7

个人博客为: MoYu’s HomePage

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-09-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Boot 整合 RabbitMQ
    • 简介
      • 搭建生产者工程
        • 1.创建生产者项目
        • 2.导入依赖
        • 3.配置项目
      • 搭建消费者工程
        • 1.创建生产者项目
        • 2.导入依赖
        • 3.创建消费者类
      • 运行测试
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档