如何解決SpringBoot版本升級(jí)引起數(shù)據(jù)顯示出錯(cuò)及排查,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
成都創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供紅花崗企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為紅花崗眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
Spring boot1.5.3
fastjson
com.alibaba fastjson 1.2.47
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",
"pubTime": "2019-02-26T09:22:24.000+0000",
經(jīng)過(guò)來(lái)回更換版本等幾個(gè)小時(shí)的嘗試后,分析結(jié)果:Spring Boot默認(rèn)采用jackson作為解析,原因可能是采用1.5.3時(shí),WebMvcConfigurer extends WebMvcConfigurerAdapter類(lèi)中關(guān)于fastjson的配置起了作用,解析框架采用了fastjson(@JSONField);而升級(jí)為2.0.6之后,由于沒(méi)有對(duì)WebMvcConfigurer配置(原WebMvcConfigurerAdapter上自動(dòng)加了刪除線),Spring boot默認(rèn)采用了jackjson解析框架,導(dǎo)致@JSONField未起作用,故出現(xiàn)上述解析結(jié)果。
就是要自己定義解析框架fastjson,不用Spring boot默認(rèn)的jackson框架。
在啟動(dòng)類(lèi)中添加以下配置:
import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.context.annotation.Bean; import org.springframework.http.MediaType; @Bean public HttpMessageConverters fastJsonHttpMessageConverters(){ //創(chuàng)建FastJson信息轉(zhuǎn)換對(duì)象 FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); //創(chuàng)建Fastjosn對(duì)象并設(shè)定序列化規(guī)則 FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // 中文亂碼解決方案 ListmediaTypes = new ArrayList<>(); mediaTypes.add(MediaType.APPLICATION_JSON_UTF8);//設(shè)定json格式且編碼為UTF-8 fastJsonHttpMessageConverter.setSupportedMediaTypes(mediaTypes); //規(guī)則賦予轉(zhuǎn)換對(duì)象 fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); return new HttpMessageConverters(fastJsonHttpMessageConverter); }
問(wèn)題得到解決,時(shí)間格式可以正常返回顯示。
看完上述內(nèi)容,你們掌握如何解決SpringBoot版本升級(jí)引起數(shù)據(jù)顯示出錯(cuò)及排查的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!