Spring Boot 支持多种消息中间件,如 RabbitMQ、Kafka 等。以下是一个使用 Spring Boot 集成 RabbitMQ 的简单示例。
- 添加依赖到你的
pom.xml
:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
- 在
application.properties
或 application.yml
中配置 RabbitMQ 信息:
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
- 创建一个配置类来定义队列、交换器和绑定关系:
@Configuration
public class RabbitMQConfig {
@Bean
Queue queue() {
return new Queue("testQueue", true);
}
@Bean
DirectExchange exchange() {
return new DirectExchange("testExchange");
}
@Bean
Binding binding(Queue queue, DirectExchange exchange) {
return BindingBuilder.bind(queue).to(exchange).with("testRoutingKey");
}
}
- 发送和接收消息:
@Component
public class RabbitMQSender {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String message) {
rabbitTemplate.convertAndSend("testExchange", "testRoutingKey", message);
}
}
@Component
@RabbitListener(queues = "testQueue")
public class RabbitMQReceiver {
@RabbitHandler
public void receive(String message) {
System.out.println("Received <" + message + ">");
}
}
- 在你的主应用类或任意一个由
@Configuration
注解的配置类中启用消息队列:
@EnableRabbit
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
以上代码展示了如何在 Spring Boot 应用中集成 RabbitMQ,包括定义队列、交换器和绑定,以及发送和接收消息。这是一个基本的例子,实际应用中可能需要更复杂的配置和错误处理。