Rabbitmq 与springboot 结合

时间:2023-03-08 23:44:26
Rabbitmq 与springboot 结合
     <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

2.yml

spring:
application:
name: spring-boot-rabbitmq-sender
rabbitmq:
host: 127.0.0.1
port: 5672
username: mm
password: 123
virtual-host: /test

3.

AmqpAdmin 创建组件:如交换机,队列,绑定队则
RabbitTemplate:发送,接受消息
 
package com.aynu.bootamqp;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class)
@SpringBootTest
public class BootamqpApplicationTests { @Autowired
RabbitTemplate rabbitTemplate;
@Autowired
AmqpAdmin amqpAdmin;
@Test
public void create(){
Exchange exchange = new DirectExchange("test22222",true,false);
amqpAdmin.declareExchange(exchange);
System.out.println("创建成功"); Queue queue = new Queue("999",true);
amqpAdmin.declareQueue(queue); Binding binding = new Binding("999", Binding.DestinationType.QUEUE,"test22222","goods.add",null);
amqpAdmin.declareBinding(binding);
} @Test
public void contextLoads(){
String msg ="hello msg";
rabbitTemplate.convertAndSend("test22222","goods.add",msg);
}
@Test
public void receive(){
Object o = rabbitTemplate.receiveAndConvert("999");
System.out.println(o);
} }

4. 开启队列监控

   @Test
@RabbitListener(queues = "999")
public void receive1(){
System.out.println();
}
@EnableRabbit
@RunWith(SpringRunner.class)
@SpringBootTest
public class BootamqpApplicationTests {}