网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

如何解决SpringBoot版本升级引起数据显示出错及排查

如何解决SpringBoot版本升级引起数据显示出错及排查,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联公司是一家专业提供红花岗企业网站建设,专注与成都网站设计、做网站、成都外贸网站建设公司H5开发、小程序制作等业务。10年已为红花岗众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

描述

原来环境

Spring boot1.5.3

fastjson


        
            com.alibaba
            fastjson
            1.2.47
        

pojo中配置

import com.alibaba.fastjson.annotation.JSONField;
import org.springframework.format.annotation.DateTimeFormat;

 	@JSONField(format = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date pubTime;

测试结果

"pubTime": "2019-02-19 13:45",

升级2.0.6测试结果

"pubTime": "2019-02-26T09:22:24.000+0000",

排查解决

经过来回更换版本等几个小时的尝试后,分析结果:Spring Boot默认采用jackson作为解析,原因可能是采用1.5.3时,WebMvcConfigurer extends WebMvcConfigurerAdapter类中关于fastjson的配置起了作用,解析框架采用了fastjson(@JSONField);而升级为2.0.6之后,由于没有对WebMvcConfigurer配置(原WebMvcConfigurerAdapter上自动加了删除线),Spring boot默认采用了jackjson解析框架,导致@JSONField未起作用,故出现上述解析结果。

解决方案

就是要自己定义解析框架fastjson,不用Spring boot默认的jackson框架。

在启动类中添加以下配置:

import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.MediaType;

	@Bean
    public HttpMessageConverters fastJsonHttpMessageConverters(){
        //创建FastJson信息转换对象
        FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();

        //创建Fastjosn对象并设定序列化规则
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        // 中文乱码解决方案
        List mediaTypes = new ArrayList<>();
        mediaTypes.add(MediaType.APPLICATION_JSON_UTF8);//设定json格式且编码为UTF-8
        fastJsonHttpMessageConverter.setSupportedMediaTypes(mediaTypes);

        //规则赋予转换对象
        fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);

        return new HttpMessageConverters(fastJsonHttpMessageConverter);
    }

问题得到解决,时间格式可以正常返回显示。

看完上述内容,你们掌握如何解决SpringBoot版本升级引起数据显示出错及排查的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


标题名称:如何解决SpringBoot版本升级引起数据显示出错及排查
路径分享:http://bjjierui.cn/article/gocspo.html

其他资讯