您好,登錄后才能下訂單哦!
如何解決SpringBoot版本升級引起數據顯示出錯及排查,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Spring boot1.5.3
fastjson
<!--阿里 FastJson依賴--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
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",
經過來回更換版本等幾個小時的嘗試后,分析結果: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<MediaType> mediaTypes = new ArrayList<>(); mediaTypes.add(MediaType.APPLICATION_JSON_UTF8);//設定json格式且編碼為UTF-8 fastJsonHttpMessageConverter.setSupportedMediaTypes(mediaTypes); //規則賦予轉換對象 fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); return new HttpMessageConverters(fastJsonHttpMessageConverter); }
問題得到解決,時間格式可以正常返回顯示。
看完上述內容,你們掌握如何解決SpringBoot版本升級引起數據顯示出錯及排查的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。