原文: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