当前位置:首页 > 服务端 > feign 序列化

feign 序列化

2022年11月08日 08:17:34服务端10

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),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68441.html

标签: Feign
分享给朋友:

“feign 序列化” 的相关文章

Spring Cloud Consumer端Feign注入报错

Spring Cloud Consumer端Feign注入报错

报错信息如下:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderInfoController': Unsatisfied depen...

springboot2.x引入feign踩的坑

springboot2.x引入feign踩的坑

                                   springboot2.x引入...

SpringCloud服务调用之OpenFeign

SpringCloud服务调用之OpenFeign

     怎么使用? 注意:FeignClinet 是在消费段调用。Feign自带负载均衡配置项 1.导入pom <?xml version="1.0" e...

feignclient 添加cookie携带sessionId登录

Feign 支持请求拦截器,在发送请求前,可以对发送的模板进行操作,例如设置请求头等属性,自定请求拦截器需要实现 feign.RequestInterceptor 接口,该接口的方法 apply 有参数 template ,该参数类型为 RequestTemplate,我们可以根...

java 面试题——feign

java 面试题——feign

作者:小十木 来源链接:https://blog.csdn.net/m0_37664223/article/details/106571572...

SpringCloud笔记五:Feign

SpringCloud笔记五:Feign

目录 什么是Feign? 有了Ribbon我还要Feign干嘛? 新建consumer-feign 修改api项目 引入Maven文件 新建feign...

SpringCloud组件:Feign之日志输出

目录 Feign之日志输出 Feign日志输出说明 前期准备 构建项目 tairan-spring-cloud-feign-logger配置 源码位置 Feign之日志输出...

SpringCloud和Dubbo的区别及Dubbo和Feign远程调用的差异

SpringCloud和Dubbo的区别 SpringCloud和Dubbo有什么区别? 两者都是现在主流的微服务框架,但却存在不少差异: 初始定位不同:SpringCloud定位为微服务架构下的一站式解决方案;Dubbo 是...

关于本次【Unsatisfied dependency expressed through field 'iClientFeignEmployeeService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.oppo】

关于本次springboot项目上线遇到的问题归纳: 1.本地合适但是线上扫不到包,报错:【Unsatisfied dependency expressed through field 'iClientFeignEmployeeService'; nested exception...

SpringCloud学习系列之二 ----- 服务消费者(Feign)和负载均衡(Ribbon)使用详解

SpringCloud学习系列之二 ----- 服务消费者(Feign)和负载均衡(Ribbon)使用详解

前言 本篇主要介绍的是SpringCloud中的服务消费者(Feign)和负载均衡(Ribbon)功能的实现以及使用Feign结合Ribbon实现负载均衡。 SpringCloud Feign Feign 介绍 Feign是一个声明式的Web Serv...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。