SpringAMQP消息转换器

可以看到SpringAMQP发送方法中,发送消息的类型是Object,也就是说我们可以发送任意对象类型的消息,SpringAMQP会帮我们序列化成字节后发送
image
image

Spring的对象系处理器是由org.springframework.amqp.support.converter.MessageConverter来处理的,而默认实现就是SimpleMessageConverter,基于JDK的ObjectOutputStream完成序列化,如果要修改只需要定义一个MessageConverter类型的Bean即可.

步骤

1.引入依赖

这里的工程目录结构是这样的,一个父工程下有两个子模块一个是消息的发布者,一个是消息的接受者。因为这个依赖是两个模块都要用到的,所以直接在父工程中引入即可。
image

2.声明MessageConverter的Bean类型

这里我们在启动类声明

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

消息发送者:publish

 @Test
    void testSendObjectQueue(){
        //发送的消息
        Map<String, Object> message = new HashMap<>();
        message.put("name", "柳岩");
        message.put("age",21);
        //发送消息
        rabbitTemplate.convertAndSend("object.queue",message);
    }

消息接收者:cosumer

   @RabbitListener(queues = "object.queue")
    public void listenerObjectQueue(Map<String,Object> receiveMsg){
        System.out.println("接收到object.queue的消息为: "+receiveMsg);
    }
posted @ 2022-09-04 17:52  长情c  阅读(148)  评论(0)    收藏  举报