SpringBoot 整合 RabbitMQ demo
发布人:shili8
发布时间:2025-01-02 10:06
阅读次数:0
**Spring Boot 整合 RabbitMQ Demo**
在本文中,我们将展示如何使用 Spring Boot 来整合 RabbitMQ,实现一个简单的消息队列系统。我们将创建一个生产者(Sender)和一个消费者(Receiver),它们之间通过 RabbitMQ 进行通信。
###依赖配置首先,我们需要在 `pom.xml` 文件中添加 RabbitMQ 的依赖:
xml<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp</artifactId> <version>5.14.4</version> </dependency>
### Sender(生产者)
Sender 负责将消息发送到 RabbitMQ 中。我们创建一个 Spring Boot 应用,使用 `@SpringBootApplication` 注解来启用自动配置。
java@SpringBootApplicationpublic class SenderApplication { public static void main(String[] args) { SpringApplication.run(SenderApplication.class, args); } }
接下来,我们需要定义一个 RabbitTemplate 来发送消息:
java@Configurationpublic class RabbitConfig { @Bean public ConnectionFactory connectionFactory() { return new CachingConnectionFactory("localhost"); } @Bean public AmqpTemplate amqpTemplate() { return new RabbitTemplate(connectionFactory()); } }
在 SenderApplication 中,我们使用 `@RabbitListener` 注解来监听 RabbitMQ 的队列:
java@SpringBootApplicationpublic class SenderApplication { @Autowired private AmqpTemplate amqpTemplate; public static void main(String[] args) { SpringApplication.run(SenderApplication.class, args); } @RabbitListener(queues = "myQueue") public void receiveMessage(String message) { System.out.println("Received message: " + message); } }
最后,我们需要在 SenderApplication 中添加一个方法来发送消息:
java@SpringBootApplicationpublic class SenderApplication { @Autowired private AmqpTemplate amqpTemplate; public static void main(String[] args) { SpringApplication.run(SenderApplication.class, args); } @RabbitListener(queues = "myQueue") public void receiveMessage(String message) { System.out.println("Received message: " + message); } public void sendMessage() { String message = "Hello, RabbitMQ!"; amqpTemplate.convertAndSend("myQueue", message); } }
### Receiver(消费者)
Receiver 负责从 RabbitMQ 中接收消息。我们创建一个 Spring Boot 应用,使用 `@SpringBootApplication` 注解来启用自动配置。
java@SpringBootApplicationpublic class ReceiverApplication { public static void main(String[] args) { SpringApplication.run(ReceiverApplication.class, args); } }
在 ReceiverApplication 中,我们需要定义一个 RabbitTemplate 来接收消息:
java@Configurationpublic class RabbitConfig { @Bean public ConnectionFactory connectionFactory() { return new CachingConnectionFactory("localhost"); } @Bean public AmqpTemplate amqpTemplate() { return new RabbitTemplate(connectionFactory()); } }
在 ReceiverApplication 中,我们使用 `@RabbitListener` 注解来监听 RabbitMQ 的队列:
java@SpringBootApplicationpublic class ReceiverApplication { @Autowired private AmqpTemplate amqpTemplate; public static void main(String[] args) { SpringApplication.run(ReceiverApplication.class, args); } @RabbitListener(queues = "myQueue") public void receiveMessage(String message) { System.out.println("Received message: " + message); } }
### 测试我们可以使用 SenderApplication 来发送消息,然后在 ReceiverApplication 中接收消息。
javapublic class Main { public static void main(String[] args) { SpringApplication.run(SenderApplication.class, args); SenderApplication app = new SenderApplication(); app.sendMessage(); } }
### 总结在本文中,我们展示了如何使用 Spring Boot 来整合 RabbitMQ,实现一个简单的消息队列系统。我们创建了一个生产者(Sender)和一个消费者(Receiver),它们之间通过 RabbitMQ 进行通信。