【RabbitMQ】SpringAMQP--消息转换器

在 Spring AMQP 的发送方法中,接收消息的类型是 Object,也就是说我们可以发送任意对象类型的消息,Spring AMQP 会帮我们序列化为字节后发送。

测试发送Object类型消息

1.声明队列

@Configuration
public class FanoutConfig {
@Bean
public Queue objectQueue(){
return new Queue("object.queue");
}
}

运行消费者后:

2.发送消息

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void testSendObjectQueue(){
Map<String,Object> msg = new HashMap<>();
msg.put("name","柳岩");
msg.put("age",26);
rabbitTemplate.convertAndSend("object.queue",msg);
}
}

运行发布者后:

 

3.使用基于JDK的ObjectOutputstream完成序列化
3.1在父工程中引入依赖(发布者与消费者都需要使用)

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>

 

3.2在发布者服务与消费者服务声明MessageConverter

@Bean
public MessageConverter messageConverter(){
return new Jackson2JsonMessageConverter();
}

3.3发布者服务结果
先清理object.queue队列中的信息

 在运行发布者后:

 3.4消费者服务结果

//消费者代码
@Component
public class SpringRabbitListener {

@RabbitListener(queues = "object.queue")
public void listenObjectQueue(Map<String,Object> msg){
System.out.println("接收到object.queue的消息:" + msg);
}

}

运行后的结果:

 

posted @ 2024-06-09 09:41  普信男孩阿洲  阅读(59)  评论(0)    收藏  举报