SpringCloud使用FastJsonHttpMessageConverter遇到的坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud使用FastJsonHttpMessageConverter遇到的坑相关的知识,希望对你有一定的参考价值。

参考技术A 1.序列化到前台时时间变成时间戳,没有时间格式,SpringBoot自带的配置时间序列化格式因为已经被替换了实现类所以不在生效,需要使用fastJson的时间设置方式@JSONField(format ="yyyy-MM-dd HH:mm:ss")在实体类上加上次注解即可。

2.在序列话到前台时候fastjson遍历集合会存在对象被返回的情况,以及所有请求被拦截,但是处理不是很理想的情况,贴出配置供参考

FastJsonHttpMessageConverterCustomextends 当作一个Bean注册

public class FastJsonHttpMessageConverterCustomextends FastJsonHttpMessageConverter

private static SetsupportedMediaTypes;

    public FastJsonHttpMessageConverterCustom()

supportedMediaTypes =new HashSet<>();

        supportedMediaTypes.add(MediaType.APPLICATION_JSON);

        supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);

   

@Override

    public boolean canRead(Type type, Class contextClass, MediaType mediaType)

return this.supports(contextClass) &&supportedMediaTypes.contains(mediaType);

   

@Override

    public boolean canWrite(Type type, Class clazz, MediaType mediaType)

return super.supports(clazz) &&supportedMediaTypes.contains(mediaType);

   

@Override

    protected void writeInternal(Object object, HttpOutputMessage outputMessage)throws IOException, HttpMessageNotWritableException

OutputStream out = outputMessage.getBody();

        String text = JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect);

        byte[] bytes = text.getBytes("utf-8");

        out.write(bytes);

   

以上是关于SpringCloud使用FastJsonHttpMessageConverter遇到的坑的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud篇-SpringCloud基本使用

SpringCloud入门使用

如何使用docker部署springcloud???

使用 Spring Cloud 的目的是啥? AWS 和 Springcloud 有啥区别?

每天学点SpringCloud:SpringCloud监控

springcloud简介