一、项目创建
SpringBoot整合RabbitMQ时,提供了工具类RabbitTemplate发送消息,编写生产者时只需要注入RabbitTemplate即可发送消息。
思路在于生产者一个项目,消费者一个项目。
在Spring Boot中整合RabbitMQ非常简单,因为Spring Boot提供了自动配置的支持。以下是一个简单的步骤指南,说明如何在Spring Boot项目中整合RabbitMQ:
二、创建交换机和队列
首先,创建完Spring Boot项目之后,引进RabbitMQ依赖,如下:
代码语言:xml复制<!-- 添加RabbitMQ依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
接下来编写配置文件:
代码语言:yml复制spring:
rabbitmq:
host: 192.168.66.100
port: 5672
username: guest
password: guest
virtual-host: /
然后在配置类编写创建交换机,创建队列,绑定交换机和队列这些,具体如下代码:
代码语言:javascript复制@Configuration
public class RabbitMQConfig {
private final String EXCHANGE_NAME = "boot_topic_exchange";
private final String QUEUE_NAME = "boot_queue";
// 创建交换机
@Bean(EXCHANGE_NAME)
public Exchange getExchange(){
return ExchangeBuilder
// 交换机类型
.topicExchange(EXCHANGE_NAME)
// 是否持久化
.durable(true)
.build();
}
// 创建队列
@Bean(QUEUE_NAME)
public Queue getMessageQueue(){
return new Queue(QUEUE_NAME);
}
// 交换机绑定队列
@Bean
public Binding bindingMessageQueue(@Qualifier(EXCHANGE_NAME) Exchange exchange,
@Qualifier(QUEUE_NAME) Queue queue){
return BindingBuilder
.bind(queue)
.to(exchange)
.with("#.message.#")
.noargs();
}
}
三、编写生产者
最后,编写在测试编写测试方法,向生产者发送消息:代码如下:
代码语言:java复制@Test
public void testSendMessage(){
/**
* 发送消息
* 参数1:交换机
* 参数2:路由key
* 参数3:要发送消息
*/
rabbitTemplate.convertAndSend("boot_topic_exchange","message","他居然主动给我发消息咯?!");
}
执行之后查看管控台:
OK,已经可以确定消息已经发到RabbitMQ中了。
四、编写消费者
消费者只需写一个监听方法即可:代码如下:
代码语言:javascript复制@Component
public class Consumer {
// 监听队列
@RabbitListener(queues = "boot_queue")
public void listen_message(String message){
System.out.println("发送消息: " message);
}
}
启动项目,看一下是否成功获取消息:
OK,这里确实也是可以成功获取到RabbitMQ的消息了.
我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!