From 403fbe8fa8d3df96d692ad41ffa1c300b0db5493 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期六, 24 八月 2024 18:02:02 +0800 Subject: [PATCH] APP端登录模块接口 --- xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java | 48 ++++++++++++++++++++++++++---------------------- 1 files changed, 26 insertions(+), 22 deletions(-) diff --git a/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java b/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java index aeb8196..369fb8b 100644 --- a/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java +++ b/xinquan-common/xinquan-common-security/src/main/java/com/xinquan/common/security/config/JacksonConfig.java @@ -1,33 +1,37 @@ package com.xinquan.common.security.config; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.MapperFeature; + import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import java.math.BigInteger; +import java.time.format.DateTimeFormatter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; - + /** * Jackson配置 */ -@Configuration +@ConditionalOnClass(ObjectMapper.class) public class JacksonConfig { - - @SuppressWarnings("deprecation") + + private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; + private static final String DATE_PATTERN = "yyyy-MM-dd"; + @Bean - public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() { - final Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); - builder.serializationInclusion(JsonInclude.Include.NON_NULL); - final ObjectMapper objectMapper = builder.build(); - SimpleModule simpleModule = new SimpleModule(); - // Long 转为 String 防止 js 丢失精度 - simpleModule.addSerializer(Long.class, ToStringSerializer.instance); - objectMapper.registerModule(simpleModule); - // 忽略 transient 关键词属性 - objectMapper.configure(MapperFeature.PROPAGATE_TRANSIENT_MARKER, true); - return new MappingJackson2HttpMessageConverter(objectMapper); + public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() { + return jacksonObjectMapperBuilder -> { + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern( + DATE_TIME_PATTERN); + jacksonObjectMapperBuilder.timeZone("GMT+8"); + jacksonObjectMapperBuilder.serializers(new LocalDateTimeSerializer(dateTimeFormatter)); + jacksonObjectMapperBuilder.deserializers( + new LocalDateTimeDeserializer(dateTimeFormatter)); + // long -> string + jacksonObjectMapperBuilder.serializerByType(Long.class, ToStringSerializer.instance); + jacksonObjectMapperBuilder.serializerByType(BigInteger.class, + ToStringSerializer.instance); + }; } } \ No newline at end of file -- Gitblit v1.7.1