SpringBoot整合RabbitMQ

SpringBoot整合RabbitMQ的步骤如下:

  1. 添加依赖 :在SpringBoot项目的pom.xml文件中添加RabbitMQ的依赖。
xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  1. 配置RabbitMQ :在application.propertiesapplication.yml文件中添加RabbitMQ的配置信息,如RabbitMQ服务器的地址、端口、用户名、密码、交换机、队列和路由键等。
properties 复制代码
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

# 配置交换机
my.rabbitmq.exchange.name=myExchange
my.rabbitmq.exchange.type=direct

# 配置队列
my.rabbitmq.queue.name=myQueue

# 配置路由键
my.rabbitmq.routing.key=myRoutingKey
  1. 创建RabbitMQ生产者:创建一个服务来发送消息到RabbitMQ的交换机。
java 复制代码
@Service
public class RabbitMQProducer {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void sendMessage(String exchangeName, String routingKey, String message) {
        rabbitTemplate.convertAndSend(exchangeName, routingKey, message);
    }
}
  1. 创建RabbitMQ消费者:创建一个服务来接收RabbitMQ队列中的消息。
java 复制代码
@Service
public class RabbitMQConsumer {

    @RabbitListener(queues = "myQueue")
    public void receiveMessage(String message) {
        System.out.println("Received message: " + message);
    }
}

在这里,@RabbitListener注解用于标注监听队列的方法。

  1. 配置交换机、队列和绑定 :如果需要在Spring Boot中配置交换机、队列和绑定,可以使用@Bean注解来定义它们。
java 复制代码
@Configuration
public class RabbitMQConfig {

    @Bean
    public DirectExchange exchange() {
        return new DirectExchange(my.rabbitmq.exchange.name);
    }

    @Bean
    public Queue queue() {
        return new Queue(my.rabbitmq.queue.name);
    }

    @Bean
    public Binding binding(Queue queue, DirectExchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with(my.rabbitmq.routing.key);
    }
}
  1. 运行和测试:启动SpringBoot应用和RabbitMQ服务,然后尝试发送和接收消息,确保整合成功。

注意:在实际应用中,你可能还需要考虑更多的配置,如消息持久化、消息确认机制、死信队列、消息序列化/反序列化等。具体的配置和使用方式可以参考RabbitMQ和SpringBoot的官方文档。

相关推荐
码兄科技2 小时前
实战:基于Spring Boot + UniApp的地理信息小程序开发
spring boot·后端·uni-app
豆瓣鸡10 小时前
Guava RateLimiter 限流实战:从令牌桶原理到 Nacos 动态配置
spring boot·微服务·nacos·guava
笑小枫10 小时前
用 Claude Code 推翻重写笑小枫网站
java·人工智能·spring boot·ai编程
dkbnull15 小时前
Spring Boot请求处理组件对比详解
java·spring boot
不能只会打代码15 小时前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
吴声子夜歌16 小时前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb
snow@li16 小时前
Spring Boot:项目服务器完整部署教程(零基础可直接实操)
服务器·spring boot·后端
万亿少女的梦16817 小时前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐
鱟鲥鳚1 天前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
腾渊信息科技公司1 天前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求