zoukankan      html  css  js  c++  java
  • 记一次 SpringBoot2.x 配置 Fastjson 的坑--修正版

    原文:https://my.oschina.net/btboys/blog/3055803

    实验环境:springboot2.1.6

    读者先阅读原文,然后再看本文修正,切记。

    作者解释的很到位,关键点也找到了,但没能真正解决问题,如按作者原文做法,系统集成微信公众号,在token验证时一定报错,现给出修正版答案,解决token验证失败情况。

    注意:如果系统自定义SpringMVC的拦截器,不能使用启动类继承WebMvcConfigurationSupport这种方法,而是在拦截器中实现类似的方法才行,不然拦截器失效。

    @Override
    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    /*
    * 追加默认转换器,将jackson转换器删除,并在最后添加fastjson转换器
    * 转换器使用顺序是集合顺序,所以fastjson加载到最后,而之前jackson也是在最后,将fastjson放置在最后是正确的
    */
    super.addDefaultHttpMessageConverters(converters); // 启动类继承方式保留这行,如果是拦截器方式,需删除这行
    for (Iterator<HttpMessageConverter<?>> iterator = converters.iterator(); iterator.hasNext(); ) {
    HttpMessageConverter<?> next = iterator.next();
    if (next instanceof MappingJackson2HttpMessageConverter) {
    iterator.remove();
    }
    }
    //1、定义一个convert转换消息的对象
    FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
    //2、添加fastjson的配置信息
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    //3、在convert中添加配置信息
    fastConverter.setFastJsonConfig(fastJsonConfig);
    //4、将convert添加到converters中
    converters.add(fastConverter);
    }
    // 获取系统所有的转换器
    List<HttpMessageConverter<?>> messageConverters = super.getMessageConverters();
    ————————————————
    版权声明:本文为CSDN博主「NobodyYeah」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/NobodyYeah/article/details/99814525

  • 相关阅读:
    Jmeter之CSV文件读取
    性能计数器及性能分析方法
    性能测试的应用领域
    动态加载JS文件方法总结
    handler method 参数绑定常用注解
    A4纸网页打印
    page-break-before和page-break-after 实现分页打印
    $.ajax 中的contentType
    @Controller和@RestController的区别?
    web页面内容打印总结
  • 原文地址:https://www.cnblogs.com/telwanggs/p/15075325.html
Copyright © 2011-2022 走看看