# 消息转换器

Spring 的对象消息处理是 org.springframework.amqp.support.converter.MessageConvert 来处理的。而默认实现的是SimpleMessageConverter

基于 JDK 的ObjectOutputstream完成序列化存在的问题

  1. JDK的序列化由安全风险
  2. JDK序列化的消息太大
  3. JDK序列话的消息可读性差

# 改变消息

  1. 引入JSON
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
</dependency>
  1. 配置bean
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 RabbitMQConfig {

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

}
  1. 发送测试
@RestController
@RequestMapping("/p")
public class ProducerController {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @GetMapping
    public void send() {
        Map<String, String> msg = new HashMap<>();
        msg.put("name", "张三");

        rabbitTemplate.convertAndSend(

                "test.exchange",
                "t",
                msg
        );
    }


}
  1. web 控制台 JSON序列化方式