zoukankan      html  css  js  c++  java
  • 记录Feign调用时对LocalDateTime的处理

    feign api调用参数类型为LocalDateTime一直报错,类型转换错误

    简单记录一下解决方式吧

    调用方

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
    import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
    import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
    
    @Configuration
    public class LocalDateTimeConfig {
        
        @Bean(name = "mapperObject")
        public ObjectMapper getObjectMapper() {
            return new ObjectMapper().registerModule(new ParameterNamesModule()).registerModule(new Jdk8Module())
                    .registerModule(new JavaTimeModule());
        }
    
    
    }

    服务提供方

    import java.time.LocalDateTime;
    
    import javax.annotation.PostConstruct;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.convert.support.GenericConversionService;
    import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
    import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
    
    @Configuration
    public class WebConfigBeans {
        @Autowired
        private RequestMappingHandlerAdapter handlerAdapter;
        
        @PostConstruct
        public void initEditableValidation() {
            ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer) handlerAdapter
                .getWebBindingInitializer();
            if (initializer.getConversionService() != null) {
                    GenericConversionService genericConversionService = (GenericConversionService) initializer
                            .getConversionService();
                    genericConversionService.addConverter(String.class, LocalDateTime.class, new String2DateConverter());
                }
            }
        
    }
    import java.time.LocalDateTime;
    import java.time.format.DateTimeFormatter;
    
    import org.springframework.core.convert.converter.Converter;
    
    public class DateConverter implements Converter<String, LocalDateTime> {
    
        @Override
        public LocalDateTime convert(String source) {
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            return LocalDateTime.parse(source,formatter);
        }
        
    }
  • 相关阅读:
    十大Intellij IDEA快捷键
    IDEA 在同一目录创建多个项目
    IDEA2017 使用(二)
    idea使用(一)
    js == 与 === 的区别[转]
    Spring Boot(一)
    微服务实战(一):微服务架构的优势与不足
    phpcms:三、头部包含
    phpcms:二、头部尾部包含
    phpcms:一、安装及新建模板
  • 原文地址:https://www.cnblogs.com/Cassie-wang/p/11597794.html
Copyright © 2011-2022 走看看