spring cloud微服务快速教程之(十四)spring cloud feign使用okhttp3--以及feign调用参数丢失的说明
0-前言
spring cloud feign 默认使用httpclient,需要okhttp3的可以进行切换
当然,其实两者性能目前差别不大,差别较大的是很早之前的版本,所以,喜欢哪个自己选择;
1-实现
1-1、增加okhttp3依赖;
<!-- feign 依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> <version>2.2.3.RELEASE</version> </dependency> <!-- feign okhttp 依赖--> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-okhttp</artifactId> <version>10.10.1</version> </dependency>
1-2-配置文件增加配置,启用okhttp3:
feign: httpclient: enabled: false okhttp: enabled: true
这样就可以了,
有的文章还说要FeignOkHttpAutoConfiguration的配置类,那是多少年前的事情了,现在的版本早就不需要配置了,已经自动配置;
要切换回httpclient,只需要把配置修改回来,或者直接删掉配置和okhttp依赖就行;
2-关于Feign调用请求头和参数丢失的说明
这个问题是发现同事在项目中增加了配置类,用来解决feign调用header和query参数丢失问题,所以特别拿出来说明一下;
其实,这些配置是多此一举,是冗余代码;
why?
因为那是历史问题,是早期netflix套件中的feign才会出现的问题,
具体点说,是com.netflix.feign,feign-httpclient:8.18.0及其下版本才会出现的问题,
而现在,早就不用Netflix的feign了好吗,现在用的都是io.github.openfeign的版本了,这些问题早就不存在了
所以,什么解决参数丢失问题,纯属多此一举;