• SpringBoot的SpringMVC使用FastJson依赖时LocalDateTime全局配置序列化格式


    如果SpringBoot没有配置maven的json依赖,默认使用JacksonJson,那么你可以像网上资料介绍的那样进行配置,如下:

    @Configuration
    public class WebMvcConfig {
    
        @Bean
        public Converter<String, LocalDate> localDateConverter() {
            return new Converter<String, LocalDate>() {
                @Override
                public LocalDate convert(String source) {
                    return DateUtil.parseDate(source);
                }
            };
        }
    
        @Bean
        public Converter<String, LocalDateTime> localDateTimeConverter() {
            return new Converter<String, LocalDateTime>() {
                @Override
                public LocalDateTime convert(String source) {
                    return DateUtil.parseDateTime(source);
                }
            };
        }
    }

    如果你在maven中有配置FastJson,Spring的加载机制会优先使用手动配置的FastJson而不是JacksonJson。

    但是由于FastJson对SpringMVC的兼容不好,上面的方式并不能让自定义格式全局有生效,经过debug代码发现,需要使用下面的方式配置,才能全局生效:

    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
            FastJsonConfig fastJsonConfig = new FastJsonConfig();
            fastJsonConfig.setSerializerFeatures(
                    SerializerFeature.PrettyFormat,
                    SerializerFeature.WriteMapNullValue,
                    SerializerFeature.DisableCircularReferenceDetect
            );
            fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
            fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
            converters.add(0, fastJsonHttpMessageConverter);
        }
    }
  • 相关阅读:
    zookeeper java调用及权限控制
    走进C++程序世界------IO标准库介绍
    Unity3d 镜面折射 vertex and frag Shader源代码
    servlet上传文件报错(二)
    模仿linux内核定时器代码,用python语言实现定时器
    6.12交流
    python学习(三) 使用字符串
    JAVA面试(四)
    python学习(二) 列表和元组
    C++面试题(三)
  • 原文地址:https://www.cnblogs.com/chenkeyu/p/14373441.html
Copyright © 2020-2023  润新知