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

  • 相关阅读:
    Drcom账户管理Server端解说
    Hadoop常见异常及其解决方式
    PHP 获取网络接口文件流
    【刷题小记67】三角形面积
    Tiny语言编译器简单介绍
    矩阵十题【六】 poj3070 Fibonacci
    函数名称
    设计模式--6大原则--开闭原则
    LeetCode96:Unique Binary Search Trees
    [Swift]LeetCode958. 二叉树的完全性检验 | Check Completeness of a Binary Tree
  • 原文地址:https://www.cnblogs.com/telwanggs/p/15075325.html
Copyright © 2011-2022 走看看