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_创建对列和交换机
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_编写生产者
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中:
实时效果反馈
1. SpringBoot整合RabbitMQ时,对象可以发送消息
A RabbitRestTemplate
B RabbitMqTemplate
C RabbitTemplate
D Template
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