FeignClient支持運行時動態(tài)指定URL方式
FeignClient支持運行時動態(tài)指定URL
在實際開發(fā)中
我們經(jīng)常會通過FeignClient接口調(diào)用三方API,當(dāng)我們面對不同的環(huán)境對應(yīng)不同的地址時,可以同過配置文件和占位符,切換相應(yīng)的地址。
代碼片段如下:
@FeignClient(name = "hongxuan-service", url = "${api.xxx.url}")
public interface FeignService {
//相應(yīng)的API接口方法
}
api:
xxx:
url: http://127.0.0.1:8080但是當(dāng)我們在同一個環(huán)境中需要調(diào)用不同地址的相同接口時,這種方法就失效了。
我們可以通過
并實現(xiàn)RequestInterceptor的void apply(RequestTemplate template)接口來實現(xiàn)。
代碼示例如下:
public class FeignUrlInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate template) {
//todo 根據(jù)規(guī)則確定url,然后賦值
template.target(url);
//除此之外,還可以對header進(jìn)行設(shè)置
}
}
@FeignClient(name = "api-service", configuration = FeignUrlInterceptor.class)
public interface ApiFeignService {
}此時,當(dāng)配置了FeignUrlInterceptor.class作為配置文件的feign將會根據(jù)規(guī)則動態(tài)的切換地址
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java?MapStruct優(yōu)雅地實現(xiàn)對象轉(zhuǎn)換
MapSturct?是一個生成類型安全,高性能且無依賴的?JavaBean?映射代碼的注解處理器,用它可以輕松實現(xiàn)對象轉(zhuǎn)換,下面就來和大家聊聊具體操作吧2023-06-06
SpringBoot實現(xiàn)自定義指標(biāo)監(jiān)控功能
本文主要介紹了SpringBoot實現(xiàn)自定義指標(biāo)監(jiān)控功能的實現(xiàn),,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,感興趣的小伙伴跟著著小編來一起來學(xué)習(xí)吧2024-01-01
Java GraphQL數(shù)據(jù)加載器批處理的實現(xiàn)詳解
GraphQL 數(shù)據(jù)加載器是優(yōu)化 GraphQL API 的關(guān)鍵組件,旨在解決臭名昭著的 N+1 查詢問題,在本中,我們將深入研究其批處理功能,感興趣的小伙伴可以了解下2023-12-12
Spring中的SpringApplicationRunListener詳細(xì)解析
這篇文章主要介紹了Spring中的SpringApplicationRunListener詳細(xì)解析,SpringApplicationRunListener是一個監(jiān)聽SpringApplication中run方法的接口,在項目啟動過程的各個階段進(jìn)行事件的發(fā)布,需要的朋友可以參考下2023-11-11
以Json形式的數(shù)據(jù)格式實現(xiàn)JMeter參數(shù)化
本文以小項目學(xué)院管理系統(tǒng)為例,給大家分享以Json形式的數(shù)據(jù)格式實現(xiàn)JMeter參數(shù)化的相關(guān)知識,包括添加元件操作步驟及使用用戶參數(shù)組件實現(xiàn)參數(shù)化的方法,感興趣的朋友跟隨小編一起看看吧2021-05-05
特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實現(xiàn)單調(diào)棧示例
這篇文章主要為大家介紹了特殊數(shù)據(jù)結(jié)構(gòu)之使用Java實現(xiàn)單調(diào)棧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

