spring cloud Feign使用@RequestLine遇到的坑
如何在微服務項目中調(diào)用其它項目的接口試使用spring cloud feign聲明式調(diào)用。
/** * 客戶端請去 * @author RAY * */@FeignClient(name='store',configuration=FooConfiguration .class)public interface UserFeignClient { @RequestLine('GET /simple/{id}') public User findById(@Param('id') Long id);}
但是啟動得時候報錯:
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 默認使用的是spring mvc 注解(就是RequestMapping 之類的) ,所以需要通過新增一個配置類來修改其“契約”。
@Configurationpublic class FooConfiguration { @Bean public Contract feignContract() {return new feign.Contract.Default();//使用feign自帶契約 }}
PS : feignContract方法名不要跟一樣。否則啟動得時候會報錯。 得改一個跟類名不一樣得方法名!
@RequestLine的使用及配置@RequestLine與其它請求不同,只需要簡單寫請求方式和路徑就能達到請求其它服務的目的。
@FeignClient(value = 'feign-server',configuration = FeignConfig.class) //需要一個配置文件public interface TestService { @RequestLine('POST /feign/test') //對應請求方式和路徑 String feign(@RequestBody UserDO userDO);}
@EnableFeignClients@SpringBootConfigurationpublic class FeignConfig { @Bean public Contract contract(){return new feign.Contract.Default(); }}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. Python使用oslo.vmware管理ESXI虛擬機的示例參考2. Jsp servlet驗證碼工具類分享3. .NET6打包部署到Windows Service的全過程4. python GUI庫圖形界面開發(fā)之PyQt5滑塊條控件QSlider詳細使用方法與實例5. IntelliJ IDEA 好用插件之a(chǎn)nalyze inspect code詳解6. JetBrains IntelliJ IDEA 配置優(yōu)化技巧7. idea2020.1無法自動加載maven依賴的jar包問題及解決方法8. PHP程序員簡單的開展服務治理架構(gòu)操作詳解(一)9. vue項目中使用bpmn為節(jié)點添加顏色的方法10. 解決idea update project 更新選項消失的問題
