我是靠谱客的博主 儒雅豆芽,最近开发中收集的这篇文章主要介绍Spring AMQP 发送JSON格式的对象及Java 8时间转换成JSON格式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

@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格式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部