1. 概述
之前我有一系列关于RabbitMQ文章介绍了RabbitMQ的用法,本篇我们介绍如何在Spring Boot中集成RabbitMQ。本篇主要内容如下:
- 在Spring boot中消息的发送和接收的两种方式的demo
- 配置使用MessageConverter对消息序列化
2. Demo工程公共部分介绍
工程名称:rabbitmq
需要在我们的工程中的pom.xml引入新jar
<!-- spring boot: 此版本使用的amqp-client的4.x版本,所有需要注释掉上面的amqp-client配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
配置application-boot.yml
spring:
# 配置rabbitMQspring:
rabbitmq:
host: 10.240.80.134
username: spring-boot
password: spring-boot
virtual-host: spring-boot-vhost
下面的代码都在这个工程中
3. 简单的应用demo 一
3.1. RabbitConfigure2
@Configuration
public class RabbitConfigure2 {
// 队列名称
public final static String SPRING_BOOT_QUEUE = "spring-boot-queue-2";
// 交换机名称
public final static String SPRING_BOOT_EXCHANGE = "spring-boot-exchange-2";
// 绑定的值
public static final String SPRING_BOOT_BIND_KEY = "spring-boot-bind-key-2";
}
3.2. 发送消息
在spring boot默认会生成AmqpAdmin和AmqpTemplate 供我们和RabbitMQ交互。
AmqpTemplate 的默认实例是RabbitTemplate,AmqpAdmin 默认实例是RabbitAdmin,通过源码发现其内部实现实际是RabbitTemplate。所以AmqpAdmin和AmqpTemplate两者本质是相同的
发送者代码:SendMsg2
@Component
public class SendMsg2 {
// 此接口默认实现只有一个,且是RabbitAdmin,通过源码发现其内部实现实际是RabbitTemplate。所以AmqpAdmin和AmqpTemplate当前两者本质是相同的