SpringBoot快速整合RabbitMq小案例
对于一个直接创建的springBoot项目工程来说,可以按照以下步骤使用rabbitmq
- 添加依赖:添加rabbitMQ的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
- 配置连接:在配置文件中配置虚拟主机、端口号、用户名、密码等信息。
spring:
rabbitmq:
host: localhost
port: 5672
virtual-host: {你的虚拟主机}
username: {你的用户名}
password: {你的密码}
- 创建生产者:导入对应依赖后,使用rabbitTemplate,并调用convertAndSend来发送消息。
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendMessage(String message) {
rabbitTemplate.convertAndSend("exchangeName", "routingKey", message);
}
来发送消息。
- 创建消费者:使用
@RabbitListener
注解在消息处理方法上,指定监听的队列名称,并在方法参数中接收消息。
@RabbitListener(queues = "queueName")
public void receiveMessage(String message) {
// 处理接收到的消息
System.out.println("Received message: " + message);
}
- 编写配置类,使用@Bean注解在对应的方法上把方法的返回值(将队列,交换机等信息)交由spring管理。
// 交换机名称
public static final String ITEM_TOPIC_EXCHANGE = "item_topic_exchange";
// 队列名称
public static final String ITEM_QUEUE = "item_queue";
//声明交换机
@Bean
public Exchange exchange(){
return ExchangeBuilder.topicExchange(ITEM_TOPIC_EXCHANGE).durable(true).build();
}
//声明队列
@Bean
public Queue queue(){
return QueueBuilder.durable(ITEM_QUEUE).build();
}
//队列绑定到交换机
@Bean
public Binding binding(Queue queue,Exchange exchange){
return BindingBuilder.bind(queue).to(exchange).with("item.#").noargs();
}
- 启动应用程序或者写测试类。
@Autowired
RabbitTemplate rabbitTemplate;
@Test
public void testSendMessage(){
rabbitTemplate.convertAndSend(RabbitmqConfig.ITEM_TOPIC_EXCHANGE, "item.insert", "新增商品的消息~~");
System.out.println("消息发送成功");
}