@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的版本問題上跌跤了,現(xiàn)在在這里記錄下來,希望對大家有用。
首先,先看一下官網(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對Feign的支持在Finchley版本以下是由spring-cloud-starter-feign包提供的,而之后就是由spring-cloud-starter-openfeign提供的。
根據(jù)我的情況,我的Spring Cloud版本選了Edgware(腦子里浮現(xiàn)出一串?dāng)?shù)字:7777777),并且feign的依賴應(yīng)該使用spring-cloud-starter-feign。大家可以根據(jù)自己項(xiàng)目情況選擇。
在pom文件中添加依賴
<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>
然后再給大家說一下Feign的使用
@FeignClient(name = "feignClient", url="xxxx") public interface FeignClient { ? ? @PostMapping(value = "/query") ? ? String query(@RequestParam String token); } @EnableFeignClients(basePackages = {"xxx"}) // 別忘了在啟動類上加上注解,xxx的值為FeignClient定義所在的包 @Autowired FeignClient feignClient; feignClient.query("xxxxxxxxx");
Spring Boot“坑”之@FeignClient注解
在項(xiàng)目開發(fā)中難免會遇到一些問題,這次小編又遇到了一個(gè)很惡心的問題,由于剛接觸springboot架構(gòu),配置和使用上都還比較陌生。
下面來描述一下我遇到的問題
項(xiàng)目是分模塊開發(fā),后臺做無狀態(tài),登錄和權(quán)限控制在網(wǎng)關(guān)上做,所有服務(wù)都注冊到服務(wù)中心上,由網(wǎng)關(guān)往下分發(fā)請求
小編在寫網(wǎng)關(guān)接口的時(shí)候遇到了問題,網(wǎng)關(guān)接口和后臺接口都寫的沒有問題,但是在整合后,網(wǎng)關(guān)無法轉(zhuǎn)發(fā)到這個(gè)接口上。經(jīng)過百度許久后無果。
小編開始進(jìn)行排查,由于在網(wǎng)關(guān)里@FeignClient 注解的接口中所有的方法請求地址和網(wǎng)關(guān)中所請求的地址一樣,然后做出個(gè)大膽的推測,是不是這個(gè)原因呢??
然后開始試驗(yàn),將網(wǎng)關(guān)請求的路徑稍作修改,和請求后臺的路徑不一致,然后,問題解決?。。ǖ侥壳盀橹?,不知道原因)
貼上圖片,更容易明白
【錯(cuò)誤頁】
【網(wǎng)關(guān)轉(zhuǎn)發(fā)接口】
【后臺請求接口】
【網(wǎng)關(guān)請求接口】
原因是因?yàn)榫W(wǎng)關(guān)請求接口名稱和后臺請求接口名稱一樣
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA 2021.1 操作SVN 最新超詳細(xì)教程(圖文)
本教程將通過idea從svn服務(wù)器中的任意一個(gè)分支檢出代碼(本文采用branches),然后再idea中創(chuàng)建新的分支、提交代碼、拉取代碼、合并分支等操作進(jìn)行一一記錄,暫不包含代碼合并,對idea2021.1操作svn相關(guān)知識感興趣的朋友一起學(xué)習(xí)下吧2021-05-05