亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

配置化Feign接口動態(tài)切換URL方式

 更新時(shí)間:2024年11月15日 08:41:43   作者:夷則sail  
本文介紹了在開發(fā)、測試和生產(chǎn)環(huán)境中使用Feign接口時(shí),根據(jù)不同的環(huán)境動態(tài)切換調(diào)用URL的方法,通過在不同環(huán)境的配置文件中配置URL,并實(shí)現(xiàn)一個(gè)Feign攔截器來讀取這些配置,從而實(shí)現(xiàn)URL的動態(tài)切換,這種方法避免了引入過多步驟,同時(shí)也保證了不同環(huán)境下的URL正確調(diào)用

配置化Feign接口動態(tài)切換URL

最近有一個(gè)項(xiàng)目,其中需要對外調(diào)用的Feign接口的地址在dev、test、pro環(huán)境中都不同,由于沒有引入注冊中心,所以要切換其調(diào)用url。

考慮了很多方式:比如以數(shù)據(jù)庫存儲然后根據(jù)profil-active的不同而動態(tài)讀取,但是因?yàn)閷?shí)現(xiàn)起來會引入較多步驟,就考慮到了根據(jù)配置文件的不同而在部署時(shí)動態(tài)加載。

步驟如下:

在不同環(huán)境的配置文件中都對url進(jìn)行配置

定義配置類讀取這些自定義的url配置

實(shí)現(xiàn)feign中的RequestInterceptor接口

將讀取到的url和feign接口服務(wù)名映射為map,在調(diào)用feign接口是,feign攔截器會根據(jù)feign接口的定義的name找到對應(yīng)url即可實(shí)現(xiàn)不同環(huán)境動態(tài)調(diào)用。

因?yàn)椴煌h(huán)境的配置文件中url不同,所以能調(diào)用到不同url。

@Configuration
public class FeignUrlInterceptor implements RequestInterceptor {

    private Map<String, String> feignUrlMap;

    @Autowired
    public FeignUrlInterceptor(FeignUrlConfig feignUrlConfig) {
        feignUrlMap = new HashMap<>();
        feignUrlMap.put(FeignConstant.TEXTSEG_FEIGN_NAME, feignUrlConfig.textsegUrl);
        feignUrlMap.put(FeignConstant.DOMAIN_FEIGN_NAME, feignUrlConfig.domainUrl);
    }


    /**
     * Called for every request. Add data using methods on the supplied {@link RequestTemplate}.
     *
     * @param template
     */
    @Override
    public void apply(RequestTemplate template) {
        String name = template.feignTarget().name();
        //System.out.println("name:" + name + "-----------------------------------------------------------------");
        String url = this.feignUrlMap.get(name);
        //System.out.println("url:" + url + "-----------------------------------------------------------------");
        template.target(url);
    }
}

需要注意的是:

RequestInterceptor接口對所有feign接口都有效。

以上,在開發(fā)、測試等環(huán)境的配置文件配置不同feign接口的url時(shí),部署在響應(yīng)環(huán)境的服務(wù)即調(diào)用響應(yīng)的url。

不同環(huán)境的配置文件配置不同feign接口的url時(shí),部署在相應(yīng)環(huán)境的服務(wù)即調(diào)用相應(yīng)的url。

當(dāng)然,如果能有注冊中心更方便實(shí)現(xiàn)。

總結(jié)

這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • android中GridView的用法示例

    android中GridView的用法示例

    這篇文章主要介紹了android中GridView的用法,對于Android初學(xué)者很有參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2014-08-08
  • mybatis 事務(wù)回滾配置操作

    mybatis 事務(wù)回滾配置操作

    這篇文章主要介紹了mybatis 事務(wù)回滾配置操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • MyBatis-Plus使用sl4j日志打印SQL的代碼詳解

    MyBatis-Plus使用sl4j日志打印SQL的代碼詳解

    以下是關(guān)于使用 Spring Boot 起始器替換 slf4j-api 和 logback 依賴的詳細(xì)步驟和注意事項(xiàng),包括 MyBatis-Plus 的默認(rèn)日志級別信息,需要的朋友可以參考下
    2024-10-10
  • Spring自定義注解的實(shí)現(xiàn)與使用方式

    Spring自定義注解的實(shí)現(xiàn)與使用方式

    注解是Java中用于類、方法、參數(shù)、包的裝飾標(biāo)志,本身不具備功能,但可定義參數(shù),Java包含內(nèi)建注解和元注解,如@Target、@Retention等,描述注解的使用范圍和生命周期,Spring的AOP(面向切面編程)可以結(jié)合注解實(shí)現(xiàn)功能,如權(quán)限控制和日志記錄
    2024-09-09
  • DecimalFormat多種用法詳解

    DecimalFormat多種用法詳解

    這篇文章主要為大家詳細(xì)介紹了DecimalFormat的多種用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • eclipse+jdk安裝以及會遇到的問題及解決方法

    eclipse+jdk安裝以及會遇到的問題及解決方法

    這篇文章主要介紹了eclipse+jdk安裝以及會遇到的問題+解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • springmvc fastjson 反序列化時(shí)間格式化方法(推薦)

    springmvc fastjson 反序列化時(shí)間格式化方法(推薦)

    下面小編就為大家?guī)硪黄猻pringmvc fastjson 反序列化時(shí)間格式化方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java事務(wù)管理學(xué)習(xí)之Hibernate詳解

    Java事務(wù)管理學(xué)習(xí)之Hibernate詳解

    hibernate是jdbc輕量級的封裝,本身不具備事務(wù)管理的能力,在事物管理層面,一般是委托于底層的jdbc和jta來完成調(diào)度的。下面這篇文章主要給大家介紹了Java事務(wù)管理學(xué)習(xí)之Hibernate的相關(guān)資料,需要的朋友可以參考下。
    2017-03-03
  • 5個(gè)并發(fā)處理技巧代碼示例

    5個(gè)并發(fā)處理技巧代碼示例

    這篇文章主要介紹了5個(gè)并發(fā)處理技巧代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • IDEA自定義Maven archetype的方法步驟

    IDEA自定義Maven archetype的方法步驟

    在創(chuàng)建Maven的項(xiàng)目時(shí)我們發(fā)現(xiàn)了一個(gè)很不方便的問題,就是每次創(chuàng)建Maven的工程的時(shí)候,都需要選擇一個(gè)骨架,本文主要介紹了IDEA自定義Maven archetype的方法步驟,感興趣的可以了解一下
    2022-03-03

最新評論