@Bean
public Logger.Level getFeignLoggerLevel() {
return Logger.Level.FULL ;
}
@Bean
public ResponseEntityDecoder feignDecoder() {
HttpMessageConverter fastJsonConverter = createFastJsonConverter();
ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(fastJsonConverter);
return new ResponseEntityDecoder(new SpringDecoder(objectFactory));
}
@Bean
public SpringEncoder feignEncoder(){
HttpMessageConverter fastJsonConverter = createFastJsonConverter();
ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(fastJsonConverter);
return new SpringEncoder(objectFactory);
}
private HttpMessageConverter createFastJsonConverter() {
//创建fastJson消息转换器
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//升级最新版本需加=============================================================
List<MediaType> supportedMediaTypes = new ArrayList<>();
supportedMediaTypes.add(MediaType.APPLICATION\_JSON);
supportedMediaTypes.add(MediaType.APPLICATION\_JSON\_UTF8);
supportedMediaTypes.add(MediaType.APPLICATION\_ATOM\_XML);
supportedMediaTypes.add(MediaType.APPLICATION\_FORM\_URLENCODED);
supportedMediaTypes.add(MediaType.APPLICATION\_OCTET\_STREAM);
supportedMediaTypes.add(MediaType.APPLICATION\_PDF);
supportedMediaTypes.add(MediaType.APPLICATION\_RSS\_XML);
supportedMediaTypes.add(MediaType.APPLICATION\_XHTML\_XML);
supportedMediaTypes.add(MediaType.APPLICATION\_XML);
supportedMediaTypes.add(MediaType.IMAGE\_GIF);
supportedMediaTypes.add(MediaType.IMAGE\_JPEG);
supportedMediaTypes.add(MediaType.IMAGE\_PNG);
supportedMediaTypes.add(MediaType.TEXT\_EVENT\_STREAM);
supportedMediaTypes.add(MediaType.TEXT\_HTML);
supportedMediaTypes.add(MediaType.TEXT\_MARKDOWN);
supportedMediaTypes.add(MediaType.TEXT\_PLAIN);
supportedMediaTypes.add(MediaType.TEXT\_XML);
fastConverter.setSupportedMediaTypes(supportedMediaTypes);
//创建配置类
FastJsonConfig fastJsonConfig = new FastJsonConfig();
//修改配置返回内容的过滤
//WriteNullListAsEmpty :List字段如果为null,输出为\[\],而非null
//WriteNullStringAsEmpty : 字符类型字段如果为null,输出为"",而非null
//DisableCircularReferenceDetect :消除对同一对象循环引用的问题,默认为false(如果不配置有可能会进入死循环)
//WriteNullBooleanAsFalse:Boolean字段如果为null,输出为false,而非null
//WriteMapNullValue:是否输出值为null的字段,默认为false
fastJsonConfig.setSerializerFeatures(
SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.WriteMapNullValue,
SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteEnumUsingToString,
SerializerFeature.WriteNullStringAsEmpty
);
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
fastConverter.setFastJsonConfig(fastJsonConfig);
return fastConverter;
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章