rabbitmq整合springboot教程
时间: 2023-09-19 17:10:48 浏览: 92
RabbitMQ集成springboot
下面是 RabbitMQ 整合 Spring Boot 的教程:
1. 添加 RabbitMQ 依赖
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
```
2. 配置 RabbitMQ
在 application.properties 文件中添加以下配置:
```properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
```
3. 创建生产者
创建一个名为 `RabbitMQProducer` 的类,并添加 `@Component` 注解,使其成为 Spring Bean。
```java
@Component
public class RabbitMQProducer {
@Autowired
private AmqpTemplate rabbitTemplate;
public void send(String message) {
rabbitTemplate.convertAndSend("exchange", "routingkey", message);
System.out.println("发送消息:" + message);
}
}
```
4. 创建消费者
创建一个名为 `RabbitMQConsumer` 的类,并添加 `@Component` 注解,使其成为 Spring Bean。
```java
@Component
public class RabbitMQConsumer {
@RabbitListener(queues = "queue")
public void receive(String message) {
System.out.println("收到消息:" + message);
}
}
```
5. 发送消息
在任何需要发送消息的地方,注入 `RabbitMQProducer` 并调用 `send()` 方法即可发送消息。
```java
@Autowired
private RabbitMQProducer rabbitMQProducer;
public void send() {
rabbitMQProducer.send("Hello, RabbitMQ!");
}
```
6. 接收消息
当有消息到达消息队列时,`RabbitMQConsumer` 中的 `receive()` 方法会被调用,其中 `message` 参数就是接收到的消息。
完整代码如下:
```java
@Component
public class RabbitMQProducer {
@Autowired
private AmqpTemplate rabbitTemplate;
public void send(String message) {
rabbitTemplate.convertAndSend("exchange", "routingkey", message);
System.out.println("发送消息:" + message);
}
}
@Component
public class RabbitMQConsumer {
@RabbitListener(queues = "queue")
public void receive(String message) {
System.out.println("收到消息:" + message);
}
}
@RestController
public class TestController {
@Autowired
private RabbitMQProducer rabbitMQProducer;
@GetMapping("/send")
public void send() {
rabbitMQProducer.send("Hello, RabbitMQ!");
}
}
```
参考文献:
[1] https://www.baeldung.com/spring-amqp
阅读全文