女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

科技綠洲 ? 來(lái)源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-09 17:05 ? 次閱讀

eureka sersver 配置環(huán)境

在上一篇中已經(jīng)介紹了,spring boot 是調(diào)用 類的 方法啟動(dòng) Eureka Server 的。

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

    // 省略不重要的代碼
}

初始化環(huán)境和加載配置文件在方法 initEurekaEnvironment 方法中,一起來(lái)看看吧。

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 的創(chuàng)建會(huì)加載一堆 config,這里不需要去看這一塊。
  2. 單例模式其實(shí)有很多種,如:餓漢模式、懶漢模式、雙重校驗(yàn)鎖、靜態(tài)內(nèi)部類、枚舉等實(shí)現(xiàn)方式,這里 getConfigInstance() 方法用的是 volatile + synchronized + double check 雙重校驗(yàn)鎖模式。
  3. 最后獲取 eureka server 的運(yùn)行環(huán)境,沒(méi)有配置運(yùn)行環(huán)境就用 test 環(huán)境。如讀取配置文件用:eureka-server-test.properties

面向接口

EurekaServerConfig 接口

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

EurekaServerConfig eurekaServerConfig = new DefaultEurekaServerConfig();

這行代碼創(chuàng)建了一個(gè) EurekaServerConfig 對(duì)象。EurekaServerConfig 是一個(gè)接口。定義了許多配置項(xiàng)的方法。

圖片

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

DefaultEurekaServerConfig 默認(rèn)實(shí)現(xiàn)類

public DefaultEurekaServerConfig() {
    init();
}

DefaultEurekaServerConfig 是 eurekaServerConfig 的默認(rèn)實(shí)現(xiàn)類。

init()

init() 的前面兩行是設(shè)置環(huán)境的名稱。

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 的值,默認(rèn)值是:eureka-server。

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

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

首先會(huì)在 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" 的配置文件。并且下面的配置文件會(huì)覆蓋上面的配置文件

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

props.putAll(envProps);

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

eureka.server.properties

eureka.server.properties 的作用就是為配置文件里面的各個(gè)選項(xiàng)搞一個(gè)默認(rèn)值。但是它是一個(gè)空文件。

圖片

回過(guò)頭來(lái)看 DefaultEurekaServerConfig,它才是真正的默認(rèn)實(shí)現(xiàn)的地方。

圖片

總結(jié)

  1. initEurekaEnvironment() 是讀取環(huán)境,為下面的加載配置文件做準(zhǔn)備。
  2. DefaultEurekaServerConfig 類是 EurekaServerConfig 接口的默認(rèn)實(shí)現(xiàn),里面就是默認(rèn)的配置項(xiàng)。
  3. DefaultEurekaServerConfig 的init() 方法先讀取 eureka-server.props 后讀取 eureka-server-test.properties 配置文件。
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8933

    瀏覽量

    153189
  • Server
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    24529
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    578

    瀏覽量

    25196
  • eureka
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    1798
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于libconfig進(jìn)行配置文件解析

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

    配置文件讀取

    配置文件讀取鍵的接線端是數(shù)值,存入的是字符串,是否可以通過(guò)轉(zhuǎn)換獨(dú)處字符串?求指教。
    發(fā)表于 07-24 11:01

    寫(xiě)入和讀取配置文件實(shí)例

    分享自己寫(xiě)的配置文件讀取
    發(fā)表于 12-21 23:30

    ICD配置文件的詳細(xì)介紹和配置內(nèi)容的詳細(xì)概述

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

    AD8283評(píng)估板設(shè)計(jì)和配置文件

    AD8283評(píng)估板設(shè)計(jì)和配置文件
    發(fā)表于 05-31 16:04 ?9次下載
    AD8283評(píng)估板設(shè)計(jì)和<b class='flag-5'>配置文件</b>

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

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

    labview讀寫(xiě)配置文件實(shí)例分享

    labview讀寫(xiě)配置文件實(shí)例分享
    發(fā)表于 11-01 16:05 ?46次下載

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

    上期講述了AMetal平臺(tái)驅(qū)動(dòng)框架中的硬件層,介紹了硬件層的驅(qū)動(dòng)是如何實(shí)現(xiàn)及其硬件層接口的定義,逐漸深入了解AMetal平臺(tái)。接下來(lái)向大家介紹配置文件和例程文件的使用,以此可靈活使用相應(yīng)外設(shè)的資源。
    的頭像 發(fā)表于 04-07 11:49 ?2381次閱讀
    <b class='flag-5'>配置文件</b>和例程<b class='flag-5'>文件</b>的使用

    SpringBoot配置文件application

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

    Eureka Client的創(chuàng)建案例

    在上篇中已經(jīng)講了 Eureka Server配置文件讀取。接下來(lái)講講 Eureka Client 的創(chuàng)建。每一個(gè)
    的頭像 發(fā)表于 10-09 17:03 ?658次閱讀
    <b class='flag-5'>Eureka</b> Client的創(chuàng)建案例

    KT142C語(yǔ)音芯片配置文件總是不起作用?配置文件的問(wèn)題集中歸納

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

    linux修改網(wǎng)卡ip配置文件

    Linux是一種開(kāi)源的操作系統(tǒng),因此,它給用戶提供了很高的自由度,可以根據(jù)個(gè)人需要進(jìn)行各種定制和配置。其中,修改網(wǎng)絡(luò)接口配置文件是常見(jiàn)的操作,可以通過(guò)修改網(wǎng)卡ip配置文件來(lái)設(shè)置網(wǎng)絡(luò)
    的頭像 發(fā)表于 11-17 10:51 ?2788次閱讀

    springboot的全局配置文件有幾種

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

    php的配置文件是什么

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

    如何導(dǎo)出交換機(jī)的配置文件

    在網(wǎng)絡(luò)管理中,導(dǎo)出交換機(jī)的配置文件是一項(xiàng)關(guān)鍵任務(wù),它有助于備份、審計(jì)、遷移或恢復(fù)網(wǎng)絡(luò)配置。本文將詳細(xì)介紹如何導(dǎo)出交換機(jī)配置文件,涵蓋多種方法,適用于不同場(chǎng)景和需求。文章內(nèi)容將圍繞幾種常見(jiàn)的導(dǎo)出方法展開(kāi),包括通過(guò)命令行
    的頭像 發(fā)表于 02-02 17:20 ?2683次閱讀