spring cloud Feign使用@RequestLine遇到的坑
Feign使用@RequestLine遇到的坑
如何在微服務(wù)項(xiàng)目中調(diào)用其它項(xiàng)目的接口試使用spring cloud feign聲明式調(diào)用。
/** * 客戶端請(qǐng)去 * @author RAY * */ @FeignClient(name="store",configuration=FooConfiguration .class) public interface UserFeignClient { @RequestLine("GET /simple/{id}") public User findById(@Param("id") Long id); }
但是啟動(dòng)得時(shí)候報(bào)錯(cuò):
Method getLinksForTrack not annotated with HTTP method type (ex. GET, POST)
官方文檔說明
@RequestLine is a core Feign annotation, but you are using the Spring Cloud @FeignClientwhich uses Spring MVC annotations.
意思就是feign 默認(rèn)使用的是spring mvc 注解(就是RequestMapping 之類的) ,所以需要通過新增一個(gè)配置類來修改其“契約”。
@Configuration public class FooConfiguration { @Bean public Contract feignContract() { return new feign.Contract.Default(); //使用feign自帶契約 } }
PS : feignContract方法名不要跟一樣。否則啟動(dòng)得時(shí)候會(huì)報(bào)錯(cuò)。 得改一個(gè)跟類名不一樣得方法名!
@RequestLine的使用及配置
@RequestLine與其它請(qǐng)求不同,只需要簡(jiǎn)單寫請(qǐng)求方式和路徑就能達(dá)到請(qǐng)求其它服務(wù)的目的。
@FeignClient(value = "feign-server",configuration = FeignConfig.class) //需要一個(gè)配置文件 public interface TestService { @RequestLine("POST /feign/test") //對(duì)應(yīng)請(qǐng)求方式和路徑 String feign(@RequestBody UserDO userDO); }
@EnableFeignClients @SpringBootConfiguration public class FeignConfig { @Bean public Contract contract(){ return new feign.Contract.Default(); } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring?MVC實(shí)現(xiàn)簡(jiǎn)單登錄功能
這篇文章主要為大家詳細(xì)介紹了spring?MVC實(shí)現(xiàn)簡(jiǎn)單登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09Hibernate Validator實(shí)現(xiàn)更簡(jiǎn)潔的參數(shù)校驗(yàn)及一個(gè)util
這篇文章主要介紹了Hibernate Validator實(shí)現(xiàn)更簡(jiǎn)潔的參數(shù)校驗(yàn)及一個(gè)util,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05Java 精煉解讀數(shù)據(jù)結(jié)構(gòu)邏輯控制
在程序開發(fā)的過程之中一共會(huì)存在有三種程序邏輯:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),對(duì)于之前所編寫的代碼大部分都是順序結(jié)構(gòu)的定義,即:所有的程序?qū)凑斩x的代碼順序依次執(zhí)行2022-03-03Mybatis-plus更新字段為null兩種常用方法及優(yōu)化
Mybatis Plus在進(jìn)行更新操作時(shí),默認(rèn)情況下是不能將字段更新為null的,如果要更新字段為null,需要進(jìn)行以下處理,這篇文章主要給大家介紹了關(guān)于Mybatis-plus更新字段為null的兩種常用方法及優(yōu)化,需要的朋友可以參考下2024-03-03淺析如何在Java應(yīng)用中優(yōu)雅的發(fā)送短信
很多業(yè)務(wù)場(chǎng)景里,我們都需要發(fā)送短信,比如登陸驗(yàn)證碼、告警、營(yíng)銷通知、節(jié)日祝福等等,這篇文章,我們聊聊 Java 應(yīng)用中如何優(yōu)雅的發(fā)送短信,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2023-11-11