feign 序列化
1import com.alibaba.fastjson.serializer.SerializerFeature;
2import com.alibaba.fastjson.support.config.FastJsonConfig;
3import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
4import feign.codec.Encoder;
5import org.springframework.beans.factory.ObjectFactory;
6import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
7import org.springframework.cloud.openfeign.support.SpringEncoder;
8import org.springframework.context.annotation.Bean;
9import org.springframework.context.annotation.Configuration;
10import org.springframework.http.MediaType;
11import org.springframework.http.converter.HttpMessageConverter;
12
13import java.util.ArrayList;
14import java.util.List;
15
16/**17* @desc: feign配置18* @author: kangaroohy19* @create: 2020/03/2620*/
21@Configuration
22public class FeignClientConfig {
23
24 @Bean
25 public Encoder feignEncoder(){
26 return new SpringEncoder(feignHttpMessageConverter());
27 }
28
29 private ObjectFactory feignHttpMessageConverter() {
30 final HttpMessageConverters httpMessageConverters = new HttpMessageConverters(createFastJsonConverter());
31 return () -> httpMessageConverters;
32 }
33
34 private HttpMessageConverter createFastJsonConverter(){
35 FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();
36 List supportedMediaTypes = new ArrayList<>();
37 supportedMediaTypes.add(MediaType.APPLICATION_JSON);
38 supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
39 supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);
40 supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
41 supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
42 supportedMediaTypes.add(MediaType.APPLICATION_PDF);
43 supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);
44 supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);
45 supportedMediaTypes.add(MediaType.APPLICATION_XML);
46 supportedMediaTypes.add(MediaType.IMAGE_GIF);
47 supportedMediaTypes.add(MediaType.IMAGE_JPEG);
48 supportedMediaTypes.add(MediaType.IMAGE_PNG);
49 supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);
50 supportedMediaTypes.add(MediaType.TEXT_HTML);
51 supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);
52 supportedMediaTypes.add(MediaType.TEXT_PLAIN);
53 supportedMediaTypes.add(MediaType.TEXT_XML);
54 fastJsonConverter.setSupportedMediaTypes(supportedMediaTypes);
55
56 FastJsonConfig fastJsonConfig = new FastJsonConfig();
57 fastJsonConfig.setSerializerFeatures(
58 // 是否输出值为null的字段,默认为false59 SerializerFeature.WriteMapNullValue,
60 // 将Collection类型字段的字段空值输出为[]61 SerializerFeature.WriteNullListAsEmpty,
62 // 将字符串类型字段的空值输出为空字符串63 SerializerFeature.WriteNullStringAsEmpty,
64 // 将数值类型字段的空值输出为065 SerializerFeature.WriteNullNumberAsZero,
66 //Boolean字段如果为null,输出为false,而非null67 SerializerFeature.WriteNullBooleanAsFalse,
68 //SerializerFeature.WriteDateUseDateFormat,69 //枚举字段输出为枚举值70 SerializerFeature.WriteEnumUsingToString,
71 // 禁用循环引用72 SerializerFeature.DisableCircularReferenceDetect);
73
74 fastJsonConverter.setFastJsonConfig(fastJsonConfig);
75 return fastJsonConverter;
76 }
77}
作者:今天你好123
来源链接:https://blog.csdn.net/weixin_33344147/article/details/111980404
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。