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

相关推荐
神奇小汤圆2 小时前
浅析二叉树、B树、B+树和MySQL索引底层原理
后端
文艺理科生2 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
前端·后端·架构
千寻girling2 小时前
主管:”人家 Node 框架都用 Nest.js 了 , 你怎么还在用 Express ?“
前端·后端·面试
南极企鹅2 小时前
springBoot项目有几个端口
java·spring boot·后端
Luke君607972 小时前
Spring Flux方法总结
后端
define95272 小时前
高版本 MySQL 驱动的 DNS 陷阱
后端
忧郁的Mr.Li3 小时前
SpringBoot中实现多数据源配置
java·spring boot·后端
暮色妖娆丶4 小时前
SpringBoot 启动流程源码分析 ~ 它其实不复杂
spring boot·后端·spring
Coder_Boy_4 小时前
Deeplearning4j+ Spring Boot 电商用户复购预测案例中相关概念
java·人工智能·spring boot·后端·spring
Java后端的Ai之路4 小时前
【Spring全家桶】-一文弄懂Spring Cloud Gateway
java·后端·spring cloud·gateway