导包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
配置:
#rabbitmq配置
spring.rabbitmq.host=10.0.0.19
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
创建exchange,queue,binding
- 访问rabbitmq服务:http://10.0.0.1:5672,配置exchange和queue,绑定
- 使用代码创建,绑定
@Test public void createOrDelete() { amqpAdmin.declareExchange(new DirectExchange("amqpadmin.direct.exchange")); amqpAdmin.declareQueue(new Queue("amqpadmin.direct.queue")); amqpAdmin.declareBinding( new Binding("amqpadmin.direct.queue" , Binding.DestinationType.QUEUE , "amqpadmin.direct.exchange" , "whu.cn" , null)); }
使用:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootLearnApplicationTests {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void sendMsgDirect() {
Map<String, String> map = new HashMap<>();
map.put("code", "123");
map.put("msg", "第一条消息");
map.put("data", "远看一条狗");
rabbitTemplate.convertAndSend("direct-exchange", "whu.com", map);
}
@Test
public void receiveMsgDirect() {
Object o = rabbitTemplate.receiveAndConvert("whu.com");
System.out.println(o);
}
@Test
public void sendMsgTopic() {
Map<String, String> map = new HashMap<>();
map.put("code", "123");
map.put("msg", "第一条消息");
map.put("data", "远看一条狗");
rabbitTemplate.convertAndSend("topic-exchange", "th.cn", map);
}
@Test
public void receiveTopic() {
Object o = rabbitTemplate.receiveAndConvert("th.com");
System.out.println(o);
}
}
原理: