SpringBoot使用Rabbit详解含完整代码

1. 摘要

本文将详细介绍如何在Spring Boot应用程序中集成和使用RabbitMQ消息队列。RabbitMQ是一个开源的消息代理和队列服务器,用于通过轻量级和可靠的消息在应用程序或系统之间进行异步通信。本文将通过步骤说明、代码示例和详细注释,指导读者在Spring Boot项目中配置RabbitMQ,并演示如何发送和接收消息。

RabbitMQ基础知识详解RabbitMQ详解(值得珍藏)

2. 使用步骤

2.1 添加依赖

首先,在Spring Boot项目的pom.xml文件中添加RabbitMQ的依赖。

xml 复制代码
<dependencies>  
    <!-- Spring Boot RabbitMQ Starter -->  
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-amqp</artifactId>  
    </dependency>  
    <!-- 其他依赖... -->  
</dependencies>

2.2 配置RabbitMQ

application.propertiesapplication.yml文件中配置RabbitMQ的连接信息。

application.properties 示例:

properties 复制代码
spring.rabbitmq.host=localhost  
spring.rabbitmq.port=5672  
spring.rabbitmq.username=guest  
spring.rabbitmq.password=guest

或者,如果你使用application.yml,则配置如下:

yaml 复制代码
spring:  
  rabbitmq:  
    host: localhost  
    port: 5672  
    username: guest  
    password: guest

2.3 创建消息发送者

接下来,我们将创建一个消息发送者,使用RabbitTemplate来发送消息。

java 复制代码
import org.springframework.amqp.rabbit.core.RabbitTemplate;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Component;  
  
@Component  
public class MessageSender {  
  
    @Autowired  
    private RabbitTemplate rabbitTemplate;  
  
    // 发送消息到名为"hello"的队列  
    public void send(String message) {  
        rabbitTemplate.convertAndSend("hello", message);  
    }  
}

2.4 创建消息接收者

现在,我们需要创建一个消息接收者,使用@RabbitListener注解来监听队列。

java 复制代码
import org.springframework.amqp.rabbit.annotation.RabbitListener;  
import org.springframework.stereotype.Component;  
  
@Component  
public class MessageReceiver {  
  
    // 监听名为"hello"的队列  
    @RabbitListener(queues = "hello")  
    public void receive(String message) {  
        System.out.println("Received Message: " + message);  
    }  
}

2.5 在应用程序中使用发送者和接收者

最后,在你的Spring Boot应用程序中,你可以使用上面创建的MessageSenderMessageReceiver类来发送和接收消息。

java 复制代码
import org.springframework.boot.CommandLineRunner;  
import org.springframework.stereotype.Component;  
  
@Component  
public class MyAppRunner implements CommandLineRunner {  
  
    private final MessageSender messageSender;  
  
    public MyAppRunner(MessageSender messageSender) {  
        this.messageSender = messageSender;  
    }  
  
    @Override  
    public void run(String... args) throws Exception {  
        // 当应用程序启动时,发送一条消息  
        messageSender.send("Hello, RabbitMQ!");  
    }  
}

3. 总结

本文介绍了如何在Spring Boot应用程序中集成RabbitMQ消息队列,并通过简单的示例演示了发送和接收消息的过程。RabbitMQ的集成使得应用程序能够处理异步消息,提高了系统的可伸缩性和可靠性。通过使用Spring Boot提供的RabbitMQ Starter,我们可以快速轻松地配置和使用RabbitMQ,而无需编写大量繁琐的配置代码。在实际生产环境中,你还可以进一步探索RabbitMQ的更多特性,如交换器、路由键、消息确认和持久化等。

相关推荐
凡人的AI工具箱44 分钟前
AI教你学Python 第11天 : 局部变量与全局变量
开发语言·人工智能·后端·python
是店小二呀1 小时前
【C++】C++ STL探索:Priority Queue与仿函数的深入解析
开发语言·c++·后端
canonical_entropy1 小时前
金蝶云苍穹的Extension与Nop平台的Delta的区别
后端·低代码·架构
是梦终空1 小时前
JAVA毕业设计176—基于Java+Springboot+vue3的交通旅游订票管理系统(源代码+数据库)
java·spring boot·vue·毕业设计·课程设计·源代码·交通订票
我叫啥都行2 小时前
计算机基础知识复习9.7
运维·服务器·网络·笔记·后端
工业互联网专业2 小时前
毕业设计选题:基于springboot+vue+uniapp的驾校报名小程序
vue.js·spring boot·小程序·uni-app·毕业设计·源码·课程设计
无名指的等待7123 小时前
SpringBoot中使用ElasticSearch
java·spring boot·后端
.生产的驴3 小时前
SpringBoot 消息队列RabbitMQ 消费者确认机制 失败重试机制
java·spring boot·分布式·后端·rabbitmq·java-rabbitmq
AskHarries4 小时前
Spring Boot利用dag加速Spring beans初始化
java·spring boot·后端
苹果酱05674 小时前
一文读懂SpringCLoud
java·开发语言·spring boot·后端·中间件