色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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次閱讀
    主站蜘蛛池模板: 337p啪啪人体大胆| 无码AV动漫精品一区二区免费 | 免费在线看视频| 一个人免费观看HD完整版| 国产看午夜精品理论片| 日韩精品卡1卡2三卡四卡乱码| 99热久久这里只有精品视频| 男人狂躁进女人免费视频公交| 最近的中文字幕2019国语| 久久免费视频| 19十主播福利视频| 男人天堂黄色| A级超碰视频在线观看| 青草国产在线视频免费| jealousvue成熟40岁| 人人做人人干| 国产成人无码一区AV在线观看 | 99久久国产视频| 欧美日韩第一区| 超碰在线97av视频免费| 色偷偷av男人的天堂| 国产精品黄色大片| 亚洲免费在线视频| 快播电影频道| YY6080A旧里番在线观看| 视频一区二区中文字幕| 国产亚洲日韩在线播放不卡| 野花社区视频WWW高清| 麻婆豆腐传媒视频免费| 扒开双腿疯进出爽爽爽动态图 | 国产乱人偷精品视频A人人澡| 羞羞漫画视频| 老师的玉足高跟鞋满足我| xlxx美女| 性色AV一区二区三区咪爱四虎| 九九电影伦理片| 99国产电影| 四虎影视库永久免费| 久久re这里视频只精品首页| 99re热有精品国产| 天美传媒在线观看完整高清|