| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package com.poyee.config;
- import com.fasterxml.jackson.databind.DeserializationFeature;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
- import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
- import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
- import feign.codec.Decoder;
- import org.springframework.beans.factory.ObjectFactory;
- import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
- import org.springframework.cloud.openfeign.support.ResponseEntityDecoder;
- import org.springframework.cloud.openfeign.support.SpringDecoder;
- import org.springframework.context.annotation.Bean;
- import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
- import java.time.LocalDateTime;
- import java.time.format.DateTimeFormatter;
- public class FeignDateConfig {
- private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
- @Bean
- public Decoder feignDecoder() {
- ObjectMapper objectMapper = new ObjectMapper();
- JavaTimeModule javaTimeModule = new JavaTimeModule();
- // 配置 LocalDateTime 的反序列化
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_FORMAT);
- javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
- javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
- objectMapper.registerModule(javaTimeModule);
- objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- ObjectFactory<HttpMessageConverters> messageConverters = () -> {
- MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);
- return new HttpMessageConverters(converter);
- };
- return new ResponseEntityDecoder(new SpringDecoder(messageConverters));
- }
- }
|