张小驰出没 张小驰出没
首页
  • Spring合集
  • SpringMVC合集
  • Mybatis合集
  • Spring Boot合集
  • Mybatis-plus合集
  • Spring Security合集
  • Vue合集
  • Redis合集
  • RabbitMQ合集
  • 数据结构

    • 数据结构
  • 算法解析

    • 日常算法
    • 剑指Offer
    • LeetCode
  • 技术与Bug

    • 技术文档
    • Bug解决方法
  • 个人博客

    • Hexo博客搭建
  • 我的项目
  • 我的面试
  • 分类
  • 标签
  • 归档
友链
关于
Hexo
GitHub

MoYu

何德何能,何其荣幸
首页
  • Spring合集
  • SpringMVC合集
  • Mybatis合集
  • Spring Boot合集
  • Mybatis-plus合集
  • Spring Security合集
  • Vue合集
  • Redis合集
  • RabbitMQ合集
  • 数据结构

    • 数据结构
  • 算法解析

    • 日常算法
    • 剑指Offer
    • LeetCode
  • 技术与Bug

    • 技术文档
    • Bug解决方法
  • 个人博客

    • Hexo博客搭建
  • 我的项目
  • 我的面试
  • 分类
  • 标签
  • 归档
友链
关于
Hexo
GitHub
  • Spring合集

  • SpringMVC合集

  • Mybatis合集

  • Spring Boot合集

  • Mybatis-plus合集

  • Spring Security合集

  • Redis合集

  • Vue合集

  • RabbitMQ合集

    • RabbitMQ安装与界面管理
    • RabbitMQ入门案例
    • 消息中间件RabbitMQ
    • RabbitMQ工作模式
    • Rabbit 高级操作
    • Spring Boot 整合 RabbitMQ
      • 简介
      • 搭建生产者工程
        • 1.创建生产者项目
        • 2.导入依赖
        • 3.配置项目
      • 搭建消费者工程
        • 1.创建生产者项目
        • 2.导入依赖
        • 3.创建消费者类
      • 运行测试
  • 学习ing
  • RabbitMQ合集
MoYu
2021-09-26

Spring Boot 整合 RabbitMQ

# 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 2

# 2.导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
1
2
3
4

# 3.配置项目

# 3.1 配置文件

#端口
server.port=8111

#rabbitmq配置
#这里是自己的ip地址
spring.rabbitmq.host=192.168.57.129   
spring.rabbitmq.port=5672
#自己设置的有权限的账号密码
spring.rabbitmq.username=admin
spring.rabbitmq.password=admin
1
2
3
4
5
6
7
8
9
10

# 3.2 RabbitMQ配置类

@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();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 3.3 发送消息控制类

@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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 搭建消费者工程

# 1.创建生产者项目

创建一个Spring Boot项目:

3 4

# 2.导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
1
2
3
4

# 3.创建消费者类

@Component
public class MyListener {
    @RabbitListener(queues = "item_queue")
    public void msg(String msg){
        System.out.println("消费者运行:"+msg);
    }
}
1
2
3
4
5
6
7

# 运行测试

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

  • 先启动生产者工程

  • 访问这个路径,会显示发送消息成功 (这时候 队列 和 交换机 都已经创建了)

  • 启动消费者工程

  • 再次访问路径

  • 查看结果

5 6

7

#RabbitMQ
Rabbit 高级操作

← Rabbit 高级操作

最近更新
01
链表
01-25
02
约瑟夫问题
01-25
03
快慢指针
01-25
更多文章>
Theme by Vdoing | Copyright © 2021-2022 MoYu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式