1、导入rabbitmq的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2、编写配置文件,将自己的信息写进去
spring.rabbitmq.host=23.213.321.213
spring.rabbitmq.username=root
spring.rabbitmq.password=root
spring.rabbitmq.port=5672
3、将rabbitmq的对象注入我们要使用的对象中,并且使用
package com.zsp.rabbitmq_test;
import org.junit.jupiter.api.Test;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@SpringBootTest
class RabbitmqTestApplicationTests {
@Autowired
RabbitTemplate rabbitTemplate;
//接收消息队列
@Test
void testGetMsg(){
Object o = rabbitTemplate.receiveAndConvert("zsp.news");
System.out.println(o.toString());
}
//点对点的测试
@Test
void testDirect() {
String exchange="exchange.direct";
String routingKey="zsp.news";
Map map=new HashMap<>();
map.put("msg","这是一条消息");
map.put("data", Arrays.asList("helloword",123,true));
rabbitTemplate.convertAndSend(exchange,routingKey,map);
}
//广播的测试
@Test
void testFanout() {
String exchange="exchange.fanout";
Map map=new HashMap<>();
map.put("msg","这是一条广播消息");
rabbitTemplate.convertAndSend(exchange,"",map);
}
//广播的测试
@Test
void testTopic() {
String exchange="exchange.topic";
String routingKey="*.news";
Map map=new HashMap<>();
map.put("msg","这是一条模糊匹配消息");
rabbitTemplate.convertAndSend(exchange,routingKey,map);
}
}
测试一下发现完全没有问题,甚至有点小快:
但是如果你使用的UI界面的话,就需要自己去配置下序列化方式,否则得到消息会是这样的:
配置序列化的话,我们进源文件中查看,找到一个MessageConverter,他默认的使用的是简单的序列化方式,我们只需要重写这玩意即可:
package com.zsp.rabbitmq_test.config;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//注释声明配置类
@Configuration
public class MyAMQPConfig {
//声明配置的序列化组件
@Bean
public MessageConverter messageConverter(){
return new Jackson2JsonMessageConverter();
}
}
测试: