Configure RabbitTemplatewith Jackson2JsonMessageConverter.
Then use
template.convertAndSend("myqueue", myDto);
...
SignUpDto out = (SignUpDto) template.receiveAndConvert("myQueue");
Note that the outbound conversion sets the content type (application / json) and headers with type information, which tells the receiving converter which type of object to create.
JSON, application/json. , ( ), ClassMapper, .
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"
message-converter="json" />
<bean id="json"
class="org.springframework.amqp.support.converter.Jackson2JsonMessageConverter" />
, Java Config; .
EDIT2
JSON; .
...
template.convertAndSend("", "myQueue", jsonString, new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws AmqpException {
message.getMessageProperties().setContentType("application/json");
message.getMessageProperties().getHeaders()
.put(AbstractJavaTypeMapper.DEFAULT_CLASSID_FIELD_NAME, "foo.SignUpDto");
return message;
}
});
, JSON ( SimpleMessageConverter). JSON .
source
share