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的版本了,這些問題早就不存在了
所以,什麼解決引數丟失問題,純屬多此一舉;