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的更多特性,如交换器、路由键、消息确认和持久化等。

相关推荐
谭光志几秒前
深入浅出 RAG:用一个可运行的 Demo 讲透完整链路
前端·后端·ai编程
wuqingshun3141591 分钟前
SpringBoot是如何实现自动配置的
java·spring boot·后端
zhouhui0016 分钟前
AI帮我写了个Spring Boot校验,线上漏掉了这组边界条件
java·spring boot·redis·ai编程
hdsoft_huge18 分钟前
SpringBoot系列17:日志体系Logback配置,日志分割、脱敏、异常堆栈收集规范(生产级落地)
java·spring boot·logback
ymluo20 分钟前
WebRTC M80:VP9 多层(SVC:联播)崩溃问题定位与修复建议
后端
吃饱了得干活20 分钟前
扫码登录如何实现?从原理到实战
java·spring boot·redis
juzi05028 分钟前
常见场景下的幂等性及解决方案
后端
小陈工29 分钟前
第7篇:Django框架核心原理与实战深度解析(下)
后端·python·面试
她的男孩33 分钟前
低代码只能做单表 CRUD?我们一行代码没写,搭了个完整进销存
java·后端·架构
Conan在掘金39 分钟前
鸿蒙 ArkUI 进阶:@Provide 和 @Consume,跨层传递的「直通车」,告别 props 层层透
后端