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