feign name指定服務(wù)調(diào)用無效問題及解決
背景
在做三方的外接接口的時候,出現(xiàn)了非常奇怪的一個問題。
某個feign調(diào)用,必須使用 url
指定路徑才能做到訪問,因為明明使用name
屬性就可以指定服務(wù)了。
這就非常奇怪了~~~~
@FeignClient(name = "outerService", url = "${third.url}",configuration = FeignConfig.class, fallbackFactory = OuterServiceFallbackFactory.class) // @FeignClient(value = "outerService",configuration = FeignConfig.class, fallbackFactory = OuterServiceFallbackFactory.class, decode404 = true) @Service public interface outerServiceClientFeign extends BafooCommonApi { }
漲知識了
聲明接口時在代碼中通過@Resource注入容器之后即可使用。
@FeignClient注解的常用屬性如下:
value
/name
:value和name的作用一樣,用于指定FeignClient的名稱;如果沒有配置url,而且項目使用了Eureka 、nacos或者ribbon,name屬性會作為微服務(wù)的名稱,用于服務(wù)發(fā)現(xiàn)。反之,只是一個名稱。此屬性和 spring.application.name 對應(yīng)。url
:一般用于調(diào)試,作用是指定@FeignClient調(diào)用的API地址,而非從服務(wù)中心獲取。url
和name
都可以使用占位符,比如:@FeignClient(name = “your.feign.name",url="${your.feign.url}”);decode404
:當(dāng)發(fā)生http 404錯誤時,如果該字段為true,會調(diào)用decoder進行解碼;否則,拋出FeignException。configuration
:Feign配置類,作用是自定義Feign的Encoder、Decoder、LogLevel、Contract。fallback
:定義容錯的處理類,當(dāng)調(diào)用遠(yuǎn)程接口失敗或超時時,會調(diào)用對應(yīng)接口的容錯邏輯,fallback指定的類必須實現(xiàn)@FeignClient標(biāo)記的接口。fallbackFactory
:工廠類,用于生成fallback類實例,實現(xiàn)每個接口通用的容錯邏輯,減少重復(fù)的代碼。path
:定義當(dāng)前FeignClient的統(tǒng)一前綴。contextId
:為某個接口設(shè)置單獨的超時,與與config里的屬性對應(yīng)。
原因
三方服務(wù)的配置文件里面加上了,前綴路徑
servlet: context-path: /outer
這就導(dǎo)致,feign調(diào)用時,拼接的路徑少了 一個前綴 /outer
。
解決辦法
使用 path
屬性,指定前綴。
@FeignClient(value = "outerService",path = "/outer",configuration = FeignConfig.class, fallbackFactory = OuterServiceFallbackFactory.class, decode404 = true)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot動態(tài)加載jar包動態(tài)配置實例詳解
這篇文章主要給大家介紹了關(guān)于springboot動態(tài)加載jar包動態(tài)配置的相關(guān)資料,在項目開發(fā)的過程中,有時候需要動態(tài)靈活的加載某個jar包并執(zhí)行其里面的方法的時候,需要的朋友可以參考下2023-11-11spring在service層的方法報錯事務(wù)不會回滾的解決
這篇文章主要介紹了spring在service層的方法報錯事務(wù)不會回滾的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02微服務(wù)實戰(zhàn)之怎樣提升springboot服務(wù)吞吐量
這篇文章主要介紹了微服務(wù)實戰(zhàn)之怎樣提升springboot服務(wù)吞吐量方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Java深入學(xué)習(xí)圖形用戶界面GUI之布局管理器
本文章向大家介紹Java GUI布局管理器,主要包括布局管理器使用實例、應(yīng)用技巧、基本知識點總結(jié)和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下2022-05-05關(guān)于Mybatis中SQL節(jié)點的深入解析
這篇文章主要給大家介紹了關(guān)于Mybatis中SQL節(jié)點的深入解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-03-03