Spring Boot整合RabbitMQ
Posted 小辣椒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot整合RabbitMQ相关的知识,希望对你有一定的参考价值。
一、思路
一般在开发过程中:
生产者工程:
1. application.yml文件配置RabbitMQ相关信息;
2. 在生产者工程中编写配置类,用于创建交换机和队列,并进行绑定
3. 注入RabbitTemplate对象,通过RabbitTemplate对象发送消息到交换机
消费者工程:
1. application.yml文件配置RabbitMQ相关信息
2. 创建消息处理类,用于接收队列中的消息并进行处理
二、步骤
1.配置RabbitMQ
1)配置文件
创建application.yml,内容如下:
spring: rabbitmq: host: 172.16.98.133 #主机ip port: 5672 #端口 username: guest password: guest virtual-host: /
2.Producer
RabbitMQConfig
1 /** 2 * @Configuration可理解为用spring的时候xml里面的<beans>标签 3 * 4 * @Bean可理解为用spring的时候xml里面的<bean>标签 5 */ 6 @Configuration 7 public class RabbitMQConfig { 8 9 public static final String EXCHANGE_NAME = "boot_topic_exchange"; 10 public static final String QUEUE_NAME = "boot_queue"; 11 12 //1.交换机 13 @Bean("bootExchange") 14 public Exchange bootExchange(){ 15 return ExchangeBuilder.topicExchange(EXCHANGE_NAME).durable(true).build(); 16 } 17 18 //2.Queue 队列 19 @Bean("bootQueue") 20 public Queue bootQueue(){ 21 return QueueBuilder.durable(QUEUE_NAME).build(); 22 } 23 24 //3. 队列和交互机绑定关系 Binding 25 /* 26 1. 知道哪个队列 27 2. 知道哪个交换机 28 3. routing key 29 @Qualifier注解了,qualifier的意思是合格者,通过这个标示,表明了哪个实现类才是我们所需要的 30 */ 31 @Bean 32 public Binding bindQueueExchange(@Qualifier("bootQueue") Queue queue, @Qualifier("bootExchange") Exchange exchange){ 33 return BindingBuilder.bind(queue).to(exchange).with("boot.#").noargs(); 34 } 35 }
3.Consumer:
RabbimtMQListener:
1 //@component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>) 2 @Component 3 public class RabbimtMQListener { 4 5 //@RabbitListener注解指定目标方法来作为消费消息的方法,通过注解参数指定所监听的队列或者Binding。 6 @RabbitListener(queues = "boot_queue") 7 public void ListenerQueue(Message message){ 8 //System.out.println(message); 9 System.out.println(new String(message.getBody())); 10 } 11 }
以上是关于Spring Boot整合RabbitMQ的主要内容,如果未能解决你的问题,请参考以下文章
[Spring boot] Spring boot 整合RabbitMQ实现通过RabbitMQ进行项目的连接