Spring Boot 整合 RabbitMQ详细示例
时间: 2024-02-29 13:25:59 浏览: 21
好的,下面是 Spring Boot 整合 RabbitMQ 的详细示例:
1. 引入依赖
在 pom.xml 文件中引入以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
```
2. 配置 RabbitMQ
在 application.properties 文件中配置 RabbitMQ:
```properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
```
3. 创建生产者
创建一个生产者(Producer)类,用于发送消息到 RabbitMQ:
```java
@Component
public class Producer {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String message) {
rabbitTemplate.convertAndSend("myExchange", "myRoutingKey", message);
}
}
```
4. 创建消费者
创建一个消费者(Consumer)类,用于从 RabbitMQ 接收消息:
```java
@Component
public class Consumer {
@RabbitListener(queues = "myQueue")
public void receive(String message) {
System.out.println("Received message: " + message);
}
}
```
5. 创建队列、交换机、绑定关系
使用 RabbitAdmin 类创建队列、交换机、绑定关系:
```java
@Configuration
public class RabbitConfig {
@Autowired
private RabbitTemplate rabbitTemplate;
@PostConstruct
public void setup() {
RabbitAdmin rabbitAdmin = new RabbitAdmin(rabbitTemplate.getConnectionFactory());
Queue queue = new Queue("myQueue", true);
DirectExchange exchange = new DirectExchange("myExchange", true, false);
rabbitAdmin.declareQueue(queue);
rabbitAdmin.declareExchange(exchange);
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with("myRoutingKey"));
}
}
```
6. 测试
在控制器(Controller)中调用生产者发送消息,测试消费者是否成功接收消息:
```java
@RestController
public class TestController {
@Autowired
private Producer producer;
@GetMapping("/test")
public String test() {
producer.send("Hello, RabbitMQ!");
return "Message sent.";
}
}
```
以上就是 Spring Boot 整合 RabbitMQ 的详细示例,希望能对你有所帮助。