在SpringBoot集成RabbitMQ一文中介绍了如何集成RabbitMQ。默认情况下发送的消息是转换为字节码,这里介绍一下如何发送JSON数据。
ObjectMapper
最简单发送JSON数据的方式是把对象使用ObjectMapper等JSON工具类把对象转换为JSON格式,然后发送。如下:
@AutowiredprivateObjectMapperobjectMapper;publicvoidsendOrder(Orderorder){try{StringorderJson=objectMapper.writeValueAsString(order);Messagemessage=MessageBuilder.withBody(orderJson.getBytes()).setContentType(MessageProperties.CONTENT_TYPE_JSON).build();this.rabbitTemplate.convertAndSend(RabbitConfig.QUEUE_ORDERS,message);}catch(JsonProcessingExceptione){e.printStackTrace();}}
发送JSON消息
但是在每一个发送消息的地方都这样写就会很繁琐。如果规定了消息的格式为JSON,可以使用org.springframework.amqp.support.converter.Jack