@FeignClient的使用和Spring?Boot的版本適配方式
@FeignClient使用和Spring Boot版本適配
公司項(xiàng)目中需要調(diào)用微服務(wù),公司使用的Spring Boot版本是1.5.X,而現(xiàn)在的都是用的2.X版本以上了。
在FeignClinet、Spring Cloud與Spring Boot的版本問(wèn)題上跌跤了,現(xiàn)在在這里記錄下來(lái),希望對(duì)大家有用。
首先,先看一下官網(wǎng)給出的
Spring Cloud與Spring Boot版本兼容性
Spring Cloud | Spring Boot |
---|---|
Hoxton | 2.2.x, 2.3.x (Starting with SR5) |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
并且還有一個(gè)值得注意的地方是Spring Cloud對(duì)Feign的支持在Finchley版本以下是由spring-cloud-starter-feign包提供的,而之后就是由spring-cloud-starter-openfeign提供的。
根據(jù)我的情況,我的Spring Cloud版本選了Edgware(腦子里浮現(xiàn)出一串?dāng)?shù)字:7777777),并且feign的依賴(lài)應(yīng)該使用spring-cloud-starter-feign。大家可以根據(jù)自己項(xiàng)目情況選擇。
在pom文件中添加依賴(lài)
<dependencyManagement> ? ? <dependencies> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-dependencies</artifactId> ? ? ? ? ? ? <version>Edgware.RELEASE</version> ? ? ? ? ? ? <type>pom</type> ? ? ? ? ? ? <scope>runtime</scope> ? ? ? ? </dependency> ? ? </dependencies> </dependencyManagement>
<dependency> ? ? <groupId>org.springframework.cloud</groupId> ? ? <artifactId>spring-cloud-starter-feign</artifactId> ? ? <version>1.4.7.RELEASE</version> </dependency>
然后再給大家說(shuō)一下Feign的使用
@FeignClient(name = "feignClient", url="xxxx") public interface FeignClient { ? ? @PostMapping(value = "/query") ? ? String query(@RequestParam String token); } @EnableFeignClients(basePackages = {"xxx"}) // 別忘了在啟動(dòng)類(lèi)上加上注解,xxx的值為FeignClient定義所在的包 @Autowired FeignClient feignClient; feignClient.query("xxxxxxxxx");
Spring Boot“坑”之@FeignClient注解
在項(xiàng)目開(kāi)發(fā)中難免會(huì)遇到一些問(wèn)題,這次小編又遇到了一個(gè)很惡心的問(wèn)題,由于剛接觸springboot架構(gòu),配置和使用上都還比較陌生。
下面來(lái)描述一下我遇到的問(wèn)題
項(xiàng)目是分模塊開(kāi)發(fā),后臺(tái)做無(wú)狀態(tài),登錄和權(quán)限控制在網(wǎng)關(guān)上做,所有服務(wù)都注冊(cè)到服務(wù)中心上,由網(wǎng)關(guān)往下分發(fā)請(qǐng)求
小編在寫(xiě)網(wǎng)關(guān)接口的時(shí)候遇到了問(wèn)題,網(wǎng)關(guān)接口和后臺(tái)接口都寫(xiě)的沒(méi)有問(wèn)題,但是在整合后,網(wǎng)關(guān)無(wú)法轉(zhuǎn)發(fā)到這個(gè)接口上。經(jīng)過(guò)百度許久后無(wú)果。
小編開(kāi)始進(jìn)行排查,由于在網(wǎng)關(guān)里@FeignClient 注解的接口中所有的方法請(qǐng)求地址和網(wǎng)關(guān)中所請(qǐng)求的地址一樣,然后做出個(gè)大膽的推測(cè),是不是這個(gè)原因呢??
然后開(kāi)始試驗(yàn),將網(wǎng)關(guān)請(qǐng)求的路徑稍作修改,和請(qǐng)求后臺(tái)的路徑不一致,然后,問(wèn)題解決?。。ǖ侥壳盀橹?,不知道原因)
貼上圖片,更容易明白
【錯(cuò)誤頁(yè)】
【網(wǎng)關(guān)轉(zhuǎn)發(fā)接口】
【后臺(tái)請(qǐng)求接口】
【網(wǎng)關(guān)請(qǐng)求接口】
原因是因?yàn)榫W(wǎng)關(guān)請(qǐng)求接口名稱(chēng)和后臺(tái)請(qǐng)求接口名稱(chēng)一樣
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MybatisPlus的IPage失效的問(wèn)題解決方案
這篇文章主要介紹了MybatisPlus的IPage失效的問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Java多線(xiàn)程通信實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Java多線(xiàn)程通信實(shí)現(xiàn)方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11IDEA 2021.1 操作SVN 最新超詳細(xì)教程(圖文)
本教程將通過(guò)idea從svn服務(wù)器中的任意一個(gè)分支檢出代碼(本文采用branches),然后再idea中創(chuàng)建新的分支、提交代碼、拉取代碼、合并分支等操作進(jìn)行一一記錄,暫不包含代碼合并,對(duì)idea2021.1操作svn相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)下吧2021-05-05Netty啟動(dòng)流程注冊(cè)多路復(fù)用源碼解析
這篇文章主要介紹了Netty啟動(dòng)流程注冊(cè)多路復(fù)用源碼分析,繼續(xù)分析channel是如何注冊(cè)到selector中的,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03Java?超詳細(xì)講解十大排序算法面試無(wú)憂(yōu)
這篇文章主要介紹了Java常用的排序算法及代碼實(shí)現(xiàn),在Java開(kāi)發(fā)中,對(duì)排序的應(yīng)用需要熟練的掌握,這樣才能夠確保Java學(xué)習(xí)時(shí)候能夠有扎實(shí)的基礎(chǔ)能力。那Java有哪些排序算法呢?本文小編就來(lái)詳細(xì)說(shuō)說(shuō)Java常見(jiàn)的排序算法,需要的朋友可以參考一下2022-04-04一篇文章帶你搞懂Java restful 接口開(kāi)發(fā)
這篇文章主要介紹了Java restful 接口開(kāi)發(fā)的幾種方式(HTTPS),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2021-10-10