RabbitMQ【SpringBoot整合RabbitMQ(项目搭建、创建对列和交换机、编写生产者、编写消费者 )】(五)-全面详解(学习总结---从入门到深化)
  TEZNKK3IfmPf 2023年11月12日 25 0

SpringBoot整合RabbitMQ_项目搭建

RabbitMQ【SpringBoot整合RabbitMQ(项目搭建、创建对列和交换机、编写生产者、编写消费者 )】(五)-全面详解(学习总结---从入门到深化)

 之前我们使用原生JAVA操作RabbitMQ较为繁琐,接下来我们使用 SpringBoot整合RabbitMQ,简化代码编写。

1、创建SpringBoot项目,引入RabbitMQ起步依赖

<!-- RabbitMQ起步依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2、写配置文件

spring:
 rabbitmq:
   host: 192.168.0.162
   port: 5672
   username: itxiaotong
   password: itxiaotong
   virtual-host: /
#日志格式
logging:
 pattern:
   console: '%d{HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n'

实时效果反馈

1. RabbitMQ默认虚拟机路径为

A /default

B /rabbit

C /guest

D /

SpringBoot整合RabbitMQ_创建对列和交换机 

RabbitMQ【SpringBoot整合RabbitMQ(项目搭建、创建对列和交换机、编写生产者、编写消费者 )】(五)-全面详解(学习总结---从入门到深化)

SpringBoot整合RabbitMQ时,需要在配置类创建队列和交换机,写法如下: 

@Configuration
public class RabbitConfig {
    private final String EXCHANGE_NAME = "boot_topic_exchange";
    private final String QUEUE_NAME = "boot_queue";
    // 创建交换机
    @Bean("bootExchange")
    public Exchange getExchange() {
        return ExchangeBuilder
               .topicExchange(EXCHANGE_NAME) // 交换机类型
               .durable(true) // 是否持久化
               .build();
          }
    // 创建队列
    @Bean("bootQueue")
    public Queue getMessageQueue() {
        return new Queue(QUEUE_NAME); // 队列名
   }
    // 交换机绑定队列
    @Bean
    public Binding bindMessageQueue(@Qualifier("bootExchange") Exchange exchange, @Qualifier("bootQueue") Queue queue) {
        return BindingBuilder
               .bind(queue)
               .to(exchange)
               .with("#.message.#")
               .noargs();
   }
}

实时效果反馈

1. SpringBoot整合RabbitMQ时,在创建交换机和队列

A 配置文件

B 配置类

C 测试类

D 实体类

SpringBoot整合RabbitMQ_编写生产者 

RabbitMQ【SpringBoot整合RabbitMQ(项目搭建、创建对列和交换机、编写生产者、编写消费者 )】(五)-全面详解(学习总结---从入门到深化)

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

@SpringBootTest
public class TestProducer {
    // 注入RabbitTemplate工具类
    @Autowired
    private RabbitTemplate rabbitTemplate;
    @Test
    public void testSendMessage(){
        /**
         * 发送消息
         * 参数1:交换机
         * 参数2:路由key
         * 参数3:要发送的消息
         */
      rabbitTemplate.convertAndSend("boot_topic_exchange","message","双十一开始了!");
   }
}

运行生产者代码,即可看到消息发送到了RabbitMQ中:

RabbitMQ【SpringBoot整合RabbitMQ(项目搭建、创建对列和交换机、编写生产者、编写消费者 )】(五)-全面详解(学习总结---从入门到深化)

实时效果反馈

1. SpringBoot整合RabbitMQ时,对象可以发送消息

A RabbitRestTemplate

B RabbitMqTemplate

C RabbitTemplate

D Template 

SpringBoot整合RabbitMQ_编写消费者 

RabbitMQ【SpringBoot整合RabbitMQ(项目搭建、创建对列和交换机、编写生产者、编写消费者 )】(五)-全面详解(学习总结---从入门到深化)

我们编写另一个SpringBoot项目作为RabbitMQ的消费者

1、创建SpringBoot项目,引入RabbitMQ起步依赖 

<!-- rabbitmq起步依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2、编写配置文件

spring:
 rabbitmq:
   host: 192.168.0.162
   port: 5672
   username: itxiaotong
   password: itxiaotong
   virtual-host: /
#日志格式
logging:
 pattern:
   console: '%d{HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n'

3、编写消费者,监听队列

@Component
public class Consumer {
    // 监听队列
    @RabbitListener(queues = "boot_queue")
    public void listen_message(String message){
        System.out.println("发送短信:"+message);
   }
}

4、启动项目,可以看到消费者会消费队列中的消息

实时效果反馈

1. SpringBoot整合RabbitMQ时,监听队列的注解为

A @RabbitMqListener

B @QueueListener

C @MqListener

D @RabbitListener 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
TEZNKK3IfmPf