概述
和@RequestBody
注解类似,使用AMQP发送消息时如果需要把对象序列化成JSON格式的对象,也需要设置MessageConverter
。而在JSON序列化的库中,口碑最好而且更新比较稳定的便是Jackson库,而且添加了对Java 8时间API的支持。
//以下配置RabbitMQ消息服务
@Bean
public ConnectionFactory rabbitConnectionFactory() {
CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");
connectionFactory.setUsername("guest");
connectionFactory.setPassword("guest");
return connectionFactory;
}
@Bean
public RabbitTemplate rabbitTemplate() {
RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory());
template.setMessageConverter(jsonMessageConverter());
return template;
}
@Bean
public MessageConverter jsonMessageConverter() {
return new Jackson2JsonMessageConverter();
}
这样还不行,还需要在需要序列化的类的Java 8时间字段上面标注一下Jackson库的注解:
private static final long serialVersionUID = 548481104;
private Integer id;
private Integer userid;
private String outtradeno;
private String tradeno;
private Double amount;
@JsonSerialize(using = LocalDateTimeSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime time;
private Integer status;
private String phonenum;
public Baobiaoorder() {}
同时需要提供一个空的构造函数,不然会出现JsonMappingException: No suitable constructor
这样的错误。然后就可以使用RabbitTemplate来发送这个类的对象了:
Baobiaoorder order = new Baobiaoorder(1, 2, "asjdfj", null, 1.0, LocalDateTime.now(), WAIT_BUYER_PAY, "189xxxxxxxx");
rabbitTemplate.convertAndSend("pay-success-exchange","pay-success", order);
最后
以上就是儒雅豆芽为你收集整理的Spring AMQP 发送JSON格式的对象及Java 8时间转换成JSON格式的全部内容,希望文章能够帮你解决Spring AMQP 发送JSON格式的对象及Java 8时间转换成JSON格式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复