package com.tcm.training.admin.config;
|
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
|
import com.tcm.training.admin.common.DateTimes;
|
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
@Configuration
|
public class JacksonConfig {
|
|
@Bean
|
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
|
return builder -> {
|
JavaTimeModule javaTimeModule = new JavaTimeModule();
|
javaTimeModule.addSerializer(
|
java.time.LocalDateTime.class,
|
new LocalDateTimeSerializer(DateTimes.localDateTimeFormatter())
|
);
|
javaTimeModule.addDeserializer(
|
java.time.LocalDateTime.class,
|
new LocalDateTimeDeserializer(DateTimes.localDateTimeFormatter())
|
);
|
javaTimeModule.addSerializer(
|
java.time.LocalDate.class,
|
new LocalDateSerializer(DateTimes.localDateFormatter())
|
);
|
javaTimeModule.addDeserializer(
|
java.time.LocalDate.class,
|
new LocalDateDeserializer(DateTimes.localDateFormatter())
|
);
|
javaTimeModule.addSerializer(
|
java.time.LocalTime.class,
|
new LocalTimeSerializer(DateTimes.localTimeFormatter())
|
);
|
javaTimeModule.addDeserializer(
|
java.time.LocalTime.class,
|
new LocalTimeDeserializer(DateTimes.localTimeFormatter())
|
);
|
|
builder.modules(javaTimeModule);
|
builder.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
};
|
}
|
}
|