色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    8575

    瀏覽量

    151021
  • Server
    +關注

    關注

    0

    文章

    90

    瀏覽量

    24027
  • 文件
    +關注

    關注

    1

    文章

    565

    瀏覽量

    24727
  • eureka
    +關注

    關注

    0

    文章

    4

    瀏覽量

    1764
收藏 人收藏

    評論

    相關推薦

    基于libconfig進行配置文件解析

    本文介紹基于libconfig進行配置文件解析
    的頭像 發表于 06-08 10:18 ?1402次閱讀
    基于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>內容的詳細概述

    Keil的黑色界面配置文件配置方法

    本文檔的主要內容詳細介紹的是Keil的黑色界面配置文件配置方法。
    發表于 12-03 15:05 ?26次下載

    AD8283評估板設計和配置文件

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

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

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

    labview讀寫配置文件實例分享

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

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

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

    Eureka Client的創建案例

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

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

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

    linux修改網卡ip配置文件

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

    springboot的全局配置文件有幾種

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

    php的配置文件是什么

    PHP的配置文件是一種用于配置PHP解釋器的文本文件。它包含了一系列的指令和選項,用于影響PHP的行為和性能。通過修改配置文件,可以改變PHP解釋器的默認行為,從而滿足不同的需求。 在
    的頭像 發表于 12-04 15:55 ?1528次閱讀
    主站蜘蛛池模板: 99re这里只有精品视频| 97超级碰碰人妻中文字幕| 色尼姑久久超碰在线| 欧美牲交A欧美牲交VDO| 麻豆一区二区三区蜜桃免费| 久久久精品免费视频| 久久亚洲精品成人综合| 久久天天躁狠狠躁夜夜躁| 鲁大师影院在线视频在线观看| 久久婷婷五月综合色情| 老人FREE VIODES老少配| 玛雅成人网| 漂亮的保姆5电影免费观看完整版中文 | 人人澡人人擦人人免费| 欧美激情视频一区| 无码人妻丰满熟妇啪啪网不卡| 乡村教师电影版| 一区二区三区福利视频| 最新国产精品视频免费看| hd性欧美俱乐部中文| 鬼灭之刃花街篇免费樱花动漫| 国产免费人视频在线观看免费 | 迅雷哥在线观看高清| 曰本xxⅹ孕妇性xxx| 99视频精品全部免费观看| 囯产免费久久久久久国产免费| 国产精品成人免费视频99| 久久xxxx| 肉动漫无修在线播放| 国产成人久久精品激情| 好紧好湿太硬了我太爽了文字| 里番※琉璃全彩acg奈亚子| 色欲精品久久人妻AV中文字幕| 一区二区三区无码被窝影院| 成年美女黄网站色app| 九九热这里只有精品视频免费| 秋霞电影网午夜鲁丝片| 亚洲一级电影| 国产精品久久婷婷五月色| 国产亚洲一区在线| 男人脱女人衣服吃奶视频|