Rabbitmq+Springboot详解(附带代码地址)
RabbitMQ是一个开源的消息代理和队列服务器,用来通过插件机制来支持多种消息协议。Spring Boot为RabbitMQ提供了自动配置的支持,并且在Spring-AMQP的基础上进行了封装,使得在Spring Boot应用中使用RabbitMQ变得更加简单。
以下是一个使用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
:
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
TopicExchange exchange() {
return new TopicExchange("testExchange");
}
@Bean
Binding binding(Queue queue, TopicExchange 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 + ">");
}
}
- 在你的主类或者任意一个由Spring管理的类中发送消息:
@SpringBootApplication
public class RabbitMqSpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(RabbitMqSpringbootApplication.class, args);
}
@Autowired
private RabbitMQSender sender;
@PostConstruct
public void sendMessage() {
sender.send("Hello, RabbitMQ!");
}
}
这个例子展示了如何在Spring Boot应用中配置和使用RabbitMQ。代码中定义了一个配置类来声明队列、交换器和绑定关系,还有一个发送器和一个接收器组件。发送器负责发送消息到RabbitMQ,接收器则监听队列并接收消息。
评论已关闭