之前使用原生JAVA操作RabbitMQ较为繁琐,接下来使用
SpringBoot整合RabbitMQ,简化代码编写。
首先是生产者:
配置文件:
spring:
rabbitmq:
host: 192.168.130.132
port: 5672
username: root
password: root
virtual-host: /
定义配置:
@Configuration
public class RabbitMQConfig {
private final String EXCHANGE_NAME = "boot_topic_exchange";
private final String QUEUE_NAME = "boot_queue";
//交换机
@Bean("exchangeBoot")
public Exchange exchangeBoot(){
return ExchangeBuilder.topicExchange(EXCHANGE_NAME)
.durable(true)
.build();
}
//对列
@Bean("queueBoot")
public Queue queueBoot(){
return new Queue(QUEUE_NAME);
}
//绑定
@Bean
public Binding bindExAndQue(@Qualifier("exchangeBoot") Exchange exchange,@Qualifier("queueBoot") Queue queue){
return BindingBuilder
.bind(queue)
.to(exchange)
.with("#.message.#")
.noargs();
}
@SpringBootTest
public class TestProducer {
// 注入RabbitTemplate工具类
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void testSendMessage(){
/**
* 发送消息
* 参数1:交换机
* 参数2:路由key
* 参数3:要发送的消息
*/
rabbitTemplate.convertAndSend("boot_topic_e
xchange","message","双十一开始了!");
}
}
在消费者中:
@Component
public class Consumera {
@RabbitListener(queues = "boot_queue")
public void listen_message(String message){
System.out.println("信息为"+message);
}
}