在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Eureka Server面向接口的方式讀取配置文件

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-09 17:05 ? 次閱讀

eureka sersver 配置環境

在上一篇中已經介紹了,spring boot 是調用 類的 方法啟動 Eureka Server 的。

public void contextInitialized(ServletContextEvent event) {
    initEurekaEnvironment();
    initEurekaServerContext();

    // 省略不重要的代碼
}

初始化環境和加載配置文件在方法 initEurekaEnvironment 方法中,一起來看看吧。

String dataCenter = ConfigurationManager.getConfigInstance().getString(EUREKA_DATACENTER);

// 省略不重要代碼

String environment = ConfigurationManager.getConfigInstance().getString(EUREKA_ENVIRONMENT);
if (environment == null) {
    ConfigurationManager.getConfigInstance().setProperty(ARCHAIUS_DEPLOYMENT_ENVIRONMENT, TEST);
    logger.info("Eureka environment value eureka.environment is not set, defaulting to test");
}
  1. ConfigurationManager 的創建會加載一堆 config,這里不需要去看這一塊。
  2. 單例模式其實有很多種,如:餓漢模式、懶漢模式、雙重校驗鎖、靜態內部類、枚舉等實現方式,這里 getConfigInstance() 方法用的是 volatile + synchronized + double check 雙重校驗鎖模式。
  3. 最后獲取 eureka server 的運行環境,沒有配置運行環境就用 test 環境。如讀取配置文件用:eureka-server-test.properties

面向接口

EurekaServerConfig 接口

initEurekaServerContext() 方法用于加載 Eureka Server 上下文。這個方法很長,先說他的第一行代碼:

EurekaServerConfig eurekaServerConfig = new DefaultEurekaServerConfig();

這行代碼創建了一個 EurekaServerConfig 對象。EurekaServerConfig 是一個接口。定義了許多配置項的方法。

圖片

這個類的作用就是,如果以后需要用到配置文件里面的數據只要:eurekaServerConfig.getXXX() 就能獲取,而不是像平常使用的 Properties。

DefaultEurekaServerConfig 默認實現類

public DefaultEurekaServerConfig() {
    init();
}

DefaultEurekaServerConfig 是 eurekaServerConfig 的默認實現類。

init()

init() 的前面兩行是設置環境的名稱。

private void init() {
    String env = ConfigurationManager.getConfigInstance().getString(
            EUREKA_ENVIRONMENT, TEST);
    ConfigurationManager.getConfigInstance().setProperty(
            ARCHAIUS_DEPLOYMENT_ENVIRONMENT, env);

    String eurekaPropsFile = EUREKA_PROPS_FILE.get();

    //省略try...catch..
    ConfigurationManager
                .loadCascadedPropertiesFromResources(eurekaPropsFile); 
}

EUREKA_PROPS_FILE 的定義是用單例工廠模式獲取 eureka.server.props 的值,默認值是:eureka-server。

private static final DynamicStringProperty EUREKA_PROPS_FILE = DynamicPropertyFactory
            .getInstance().getStringProperty("eureka.server.props",
                    "eureka-server");

loadCascadedPropertiesFromResources() 方法是用來加載配置文件的。

首先會在 ConfigurationManager.loadCascadedProperties() 方法里面加載 eureka-server.props 配置文件

String defaultConfigFileName = configName + ".properties";
// 省略一部分代碼

ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL url = loader.getResource(defaultConfigFileName);
Properties props = getPropertiesFromFile(url);

然后再加載 configName + "-" + environment + ".properties" 的配置文件。并且下面的配置文件會覆蓋上面的配置文件

String envConfigFileName = configName + "-" + environment + ".properties";

props.putAll(envProps);

最后將配置文件交給了 ConfigurationManager 管理。

eureka.server.properties

eureka.server.properties 的作用就是為配置文件里面的各個選項搞一個默認值。但是它是一個空文件。

圖片

回過頭來看 DefaultEurekaServerConfig,它才是真正的默認實現的地方。

圖片

總結

  1. initEurekaEnvironment() 是讀取環境,為下面的加載配置文件做準備。
  2. DefaultEurekaServerConfig 類是 EurekaServerConfig 接口的默認實現,里面就是默認的配置項。
  3. DefaultEurekaServerConfig 的init() 方法先讀取 eureka-server.props 后讀取 eureka-server-test.properties 配置文件。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8901

    瀏覽量

    153053
  • Server
    +關注

    關注

    0

    文章

    94

    瀏覽量

    24459
  • 文件
    +關注

    關注

    1

    文章

    577

    瀏覽量

    25150
  • eureka
    +關注

    關注

    0

    文章

    4

    瀏覽量

    1795
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于libconfig進行配置文件解析

    本文介紹基于libconfig進行配置文件解析
    的頭像 發表于 06-08 10:18 ?1792次閱讀
    基于libconfig進行<b class='flag-5'>配置文件</b>解析

    配置文件讀取

    配置文件讀取鍵的接線端是數值,存入的是字符串,是否可以通過轉換獨處字符串?求指教。
    發表于 07-24 11:01

    寫入和讀取配置文件實例

    分享自己寫的配置文件讀取
    發表于 12-21 23:30

    ICD配置文件的詳細介紹和配置內容的詳細概述

    配置文件配置文件是利用SCL語言描述變電站設備對象模型后生成的文件,用于在不同廠商的配置工具之間交換配置信息。
    的頭像 發表于 06-02 11:16 ?1.8w次閱讀
    ICD<b class='flag-5'>配置文件</b>的詳細介紹和<b class='flag-5'>配置</b>內容的詳細概述

    AD8283評估板設計和配置文件

    AD8283評估板設計和配置文件
    發表于 05-31 16:04 ?9次下載
    AD8283評估板設計和<b class='flag-5'>配置文件</b>

    用于未壓縮高速數字接口的數字電視配置文件

    用于未壓縮高速數字接口的數字電視配置文件
    發表于 09-23 15:34 ?0次下載

    labview讀寫配置文件實例分享

    labview讀寫配置文件實例分享
    發表于 11-01 16:05 ?46次下載

    配置文件和例程文件的使用

    上期講述了AMetal平臺驅動框架中的硬件層,介紹了硬件層的驅動是如何實現及其硬件層接口的定義,逐漸深入了解AMetal平臺。接下來向大家介紹配置文件和例程文件的使用,以此可靈活使用相應外設的資源。
    的頭像 發表于 04-07 11:49 ?2340次閱讀
    <b class='flag-5'>配置文件</b>和例程<b class='flag-5'>文件</b>的使用

    SpringBoot配置文件application

    Map配置 YML配置文件: sys-num: mymap: "{'a':'aaa','b':'bbb'}" 方法內: public class learnMap { @Value
    的頭像 發表于 01-13 15:28 ?769次閱讀

    Eureka Client的創建案例

    在上篇中已經講了 Eureka Server配置文件讀取。接下來講講 Eureka Client 的創建。每一個
    的頭像 發表于 10-09 17:03 ?627次閱讀
    <b class='flag-5'>Eureka</b> Client的創建案例

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納

    KT142C語音芯片配置文件總是不起作用?配置文件的問題集中歸納
    的頭像 發表于 10-20 15:04 ?773次閱讀
    KT142C語音芯片<b class='flag-5'>配置文件</b>總是不起作用?<b class='flag-5'>配置文件</b>的問題集中歸納

    linux修改網卡ip配置文件

    Linux是一種開源的操作系統,因此,它給用戶提供了很高的自由度,可以根據個人需要進行各種定制和配置。其中,修改網絡接口配置文件是常見的操作,可以通過修改網卡ip配置文件來設置網絡
    的頭像 發表于 11-17 10:51 ?2733次閱讀

    springboot的全局配置文件有幾種

    分為兩種類型:properties和YAML。Properties文件是一種常見的配置文件類型,它使用鍵值對的方式
    的頭像 發表于 12-03 15:28 ?1902次閱讀

    php的配置文件是什么

    PHP的配置文件是一種用于配置PHP解釋器的文本文件。它包含了一系列的指令和選項,用于影響PHP的行為和性能。通過修改配置文件,可以改變PHP解釋器的默認行為,從而滿足不同的需求。 在
    的頭像 發表于 12-04 15:55 ?1796次閱讀

    如何導出交換機的配置文件

    在網絡管理中,導出交換機的配置文件是一項關鍵任務,它有助于備份、審計、遷移或恢復網絡配置。本文將詳細介紹如何導出交換機配置文件,涵蓋多種方法,適用于不同場景和需求。文章內容將圍繞幾種常見的導出方法展開,包括通過命令行
    的頭像 發表于 02-02 17:20 ?2252次閱讀
    主站蜘蛛池模板: 亚洲另类激情综合偷自拍 | 一级毛片q片 | 理论片毛片 | 欧美成人精品一区二三区在线观看 | 又黄又湿又爽吸乳视频 | 黄色插插插 | 四虎影视国产精品 | 亚洲国产成人在人网站天堂 | 黄色大片视频在线观看 | 女人张开腿等男人桶免费视频 | 美女好紧好大好爽12p | 深夜视频在线 | 97色婷婷成人综合在线观看 | 一级毛片一片毛 | 国产色婷婷精品综合在线手机播放 | 高清不卡免费一区二区三区 | 九九热在线视频观看 | 天天摸天天澡天天碰天天弄 | 女女同免费播放毛片 | 天天搞天天干 | 久久综合九色综合97_ 久久久 | 免费高清视频在线观看 | 国产免费一区二区三区香蕉精 | 欧美日本一区二区三区 | 色佬网 | 中国三级视频 | 全免费一级午夜毛片 | 天天影视欧美综合在线观看 | 毛片免费看网站 | 亚洲午夜视频在线 | 久久国产免费观看精品1 | 狠狠色丁香婷婷久久 | 久久全国免费久久青青小草 | 天天摸夜夜摸爽爽狠狠婷婷97 | 欧美成人aaaa免费高清 | 我不卡老子影院午夜伦我不卡四虎 | 色老头成人免费视频天天综合 | 国产传媒在线观看视频免费观看 | 免费看很黄很色裸乳视频 | 二十年等一人小说在线观看 | 夜色爽爽 |