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的版本了,這些問題早就不存在了

  所以,什么解決參數丟失問題,純屬多此一舉;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM