美文网首页
SpringCloud使用FastJsonHttpMessage

SpringCloud使用FastJsonHttpMessage

作者: 三个程序员之一 | 来源:发表于2018-12-14 10:34 被阅读0次

    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使用FastJsonHttpMessage

          本文链接:https://www.haomeiwen.com/subject/kfpwhqtx.html