| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package com.aitori.config;
- import cn.hutool.core.date.DatePattern;
- 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 org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
- import java.util.TimeZone;
- @Configuration
- public class JacksonConfig {
- @Bean
- public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
- return builder -> {
- JavaTimeModule javaTimeModule = this.timeModule();
- builder.timeZone(TimeZone.getTimeZone("Asia/Tokyo"));
- builder.featuresToEnable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
- builder.modules(javaTimeModule);
- };
- }
- private JavaTimeModule timeModule() {
- // 针对大数值的序列化处理
- JavaTimeModule javaTimeModule = new JavaTimeModule();
- DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN);
- javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(dateTimeFormatter));
- javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(dateTimeFormatter));
- DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN);
- javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(dateFormatter));
- javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(dateFormatter));
- DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN);
- javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(timeFormatter));
- javaTimeModule.addDeserializer(LocalTime.class, new LocalTimeDeserializer(timeFormatter));
- return javaTimeModule;
- }
- }
|