当前位置:实例文章 » JAVA Web实例» [文章]SpringBoot 整合 RabbitMQ demo

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 进行通信。

其他信息

其他资源

Top