zoukankan      html  css  js  c++  java
  • spring boot 整合 Rabbitmq

    spring boot整合

    生产者依赖

     1  <dependencies>
     2         <dependency>
     3             <groupId>org.springframework.boot</groupId>
     4             <artifactId>spring-boot-starter-amqp</artifactId>
     5         </dependency>
     6         <dependency>
     7             <groupId>org.springframework.boot</groupId>
     8             <artifactId>spring-boot-starter-test</artifactId>
     9         </dependency>
    10     </dependencies>

    yml配置

    1 spring:
    2   rabbitmq:
    3     host: localhost
    4     port: 5672
    5     virtual-host: /itcast
    6     username: heima
    7     password: heima

    绑定交换机和队列

     1 @Configuration
     2 public class RabbitMQConfig {
     3     //交换机名称
     4     public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";
     5     //队列名称
     6     public static final String ITEM_QUEUE = "item_queue";
     7 
     8     //声明交换机
     9     @Bean("itemTopicExchange")
    10     public Exchange topicExchange(){
    11         return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();
    12     }
    13 
    14     //声明队列
    15     @Bean("itemQueue")
    16     public Queue itemQueue(){
    17         return QueueBuilder.durable(ITEM_QUEUE).build();
    18     }
    19 
    20     //绑定队列和交换机
    21     @Bean
    22     public Binding itemQueueExchange(@Qualifier("itemQueue") Queue queue,
    23                                      @Qualifier("itemTopicExchange") Exchange exchange){
    24         return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
    25     }
    26 
    27 }

    消费者依赖

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5     <modelVersion>4.0.0</modelVersion>
     6     <parent>
     7         <groupId>org.springframework.boot</groupId>
     8         <artifactId>spring-boot-starter-parent</artifactId>
     9         <version>2.1.4.RELEASE</version>
    10     </parent>
    11     <groupId>com.itheima</groupId>
    12     <artifactId>springboot-rabbitmq-consumer</artifactId>
    13     <version>1.0-SNAPSHOT</version>
    14 
    15     <dependencies>
    16         <dependency>
    17             <groupId>org.springframework.boot</groupId>
    18             <artifactId>spring-boot-starter-amqp</artifactId>
    19         </dependency>
    20     </dependencies>
    21 
    22 </project>

    yml配置

    1 spring:
    2   rabbitmq:
    3     host: localhost
    4     port: 5672
    5     virtual-host: /itcast
    6     username: heima
    7     password: heima

    消息监听处理类

     1 @Component
     2 public class MyListener {
     3 
     4     /**
     5      * 监听某个队列的消息
     6      * @param message 接收到的消息
     7      */
     8     @RabbitListener(queues = "item_queue")
     9     public void myListener1(String message){
    10         System.out.println("消费者接收到的消息为:" + message);
    11     }
    12 }

    测试

     1 @RunWith(SpringRunner.class)
     2 @SpringBootTest
     3 public class RabbitMQTest {
     4 
     5     @Autowired
     6     private RabbitTemplate rabbitTemplate;
     7 
     8     @Test
     9     public void test(){
    10         rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "商品新增,routing key 为item.insert");
    11         rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.update", "商品修改,routing key 为item.update");
    12         rabbitTemplate.convertAndSend(RabbitMQConfig.ITEM_TOPIC_EXCHANGE, "item.delete", "商品删除,routing key 为item.delete");
    13     }
    14 }
  • 相关阅读:
    UI自动化测试(五)TestNG简介与安装步骤
    selenium webdriver 右键另存为下载文件(结合robot and autoIt)
    SpringBoot系列之日志框架介绍及其原理简介
    SpringBoot系列之profles配置多环境(篇二)
    SpringBoot系列之Spring容器添加组件方式
    MySQL基础之自连接用法简介
    MySQL基础之Natural Join用法
    MySQL基础之STRAIGHT JOIN用法简介
    SpringBoot系列之配置文件加载位置
    SpringBoot系列之外部配置用法简介
  • 原文地址:https://www.cnblogs.com/luckysupermarket/p/13832650.html
Copyright © 2011-2022 走看看