From 2cb66af6db59f8492c00a0528fc7af9da26c98df Mon Sep 17 00:00:00 2001 From: jeesun Date: Wed, 15 May 2019 13:39:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3jackson=20java8=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=B1=BB=E5=9E=8B=E6=A0=BC=E5=BC=8F=E5=8C=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/pom.xml | 11 +++++++++++ .../java/com/simon/common/config/WebMvcConfig.java | 5 +++++ pom.xml | 11 +++++++++++ web/pom.xml | 11 +++++++++++ .../java/com/simon/common/config/WebMvcConfig.java | 5 +++++ 5 files changed, 43 insertions(+) diff --git a/api/pom.xml b/api/pom.xml index 628dccb..0ab8f36 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -150,6 +150,17 @@ --> + + + org.mybatis + mybatis-typehandlers-jsr310 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + com.alibaba druid-spring-boot-starter diff --git a/api/src/main/java/com/simon/common/config/WebMvcConfig.java b/api/src/main/java/com/simon/common/config/WebMvcConfig.java index 4ea04ef..ef6db32 100644 --- a/api/src/main/java/com/simon/common/config/WebMvcConfig.java +++ b/api/src/main/java/com/simon/common/config/WebMvcConfig.java @@ -1,8 +1,10 @@ package com.simon.common.config; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.simon.common.handler.CurrentUserMethodArgumentResolver; import com.simon.common.interceptor.AuthInterceptor; import org.springframework.context.annotation.Bean; @@ -50,6 +52,9 @@ public class WebMvcConfig extends WebMvcConfigurerAdapter { MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); //定义对象映射器 ObjectMapper objectMapper = new ObjectMapper(); + //解决jackson java8时间类型格式化问题 + objectMapper.registerModule(new JavaTimeModule()); + objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); //对于Long 类型的数据,如果在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在Long长度大于17位时会出现精度丢失的问题。 //将Long类型的数据转换成字符串,解决Long类型数据传入前端精度丢失的问题 //定义对象模型 diff --git a/pom.xml b/pom.xml index 9fc9015..74c1190 100644 --- a/pom.xml +++ b/pom.xml @@ -208,6 +208,17 @@ + + org.mybatis + mybatis-typehandlers-jsr310 + 1.0.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.9.8 + + com.alibaba druid-spring-boot-starter diff --git a/web/pom.xml b/web/pom.xml index 4a9243e..0372c93 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -141,6 +141,17 @@ --> + + + org.mybatis + mybatis-typehandlers-jsr310 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + com.alibaba druid-spring-boot-starter diff --git a/web/src/main/java/com/simon/common/config/WebMvcConfig.java b/web/src/main/java/com/simon/common/config/WebMvcConfig.java index b87cba3..c662557 100644 --- a/web/src/main/java/com/simon/common/config/WebMvcConfig.java +++ b/web/src/main/java/com/simon/common/config/WebMvcConfig.java @@ -1,8 +1,10 @@ package com.simon.common.config; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.simon.common.handler.CurrentUserMethodArgumentResolver; import com.simon.common.interceptor.AuthInterceptor; import org.springframework.context.annotation.Bean; @@ -53,6 +55,9 @@ public class WebMvcConfig extends WebMvcConfigurerAdapter { MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); //定义对象映射器 ObjectMapper objectMapper = new ObjectMapper(); + //解决jackson java8时间类型格式化问题 + objectMapper.registerModule(new JavaTimeModule()); + objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); //对于Long 类型的数据,如果在Controller层通过@ResponseBody将返回数据自动转换成json时,不做任何处理,而直接传给前端的话,在Long长度大于17位时会出现精度丢失的问题。 //将Long类型的数据转换成字符串,解决Long类型数据传入前端精度丢失的问题 //定义对象模型 -- Gitee