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

