package com.xinquan.common.security.config;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
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;
|
|
/**
|
* Jackson配置
|
*/
|
@ConditionalOnClass(ObjectMapper.class)
|
public class JacksonConfig {
|
|
private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
|
private static final String DATE_PATTERN = "yyyy-MM-dd";
|
|
@Bean
|
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);
|
};
|
}
|
}
|