最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java如何讀取yaml配置文件

 更新時間:2024年01月15日 09:21:33   作者:qzqanlhy1314  
這篇文章主要介紹了java如何讀取yaml配置文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

java讀取yaml配置文件

maven

<dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>1.23</version>
</dependency>
<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
</dependency>

application.yaml

server:
  host: localhost
  port: 8771

java code

import org.yaml.snakeyaml.Yaml;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;


public class YamlReader {

    private static Map<String, Map<String, Object>> properties;

    private YamlReader() {
        if (SingletonHolder.instance != null) {
            throw new IllegalStateException();
        }
    }

    /**
     * use static inner class  achieve singleton
     */
    private static class SingletonHolder {
        private static YamlReader instance = new YamlReader();
    }

    public static YamlReader getInstance() {
        return SingletonHolder.instance;
    }

    //init property when class is loaded
    static {

        InputStream in = null;
        try {
            properties = new HashMap<>();
            Yaml yaml = new Yaml();
            in = YamlReader.class.getClassLoader().getResourceAsStream("application.yaml");
            properties = yaml.loadAs(in, HashMap.class);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * get yaml property
     *
     * @param key
     * @return
     */
    public Object getValueByKey(String root, String key) {

        Map<String, Object> rootProperty = properties.get(root);
        return rootProperty.getOrDefault(key, "");
    }
}

Junit Test code

public class YamlReaderTest {
    @Test
    public void testYamlReader() {
        Assert.assertEquals(YamlReader.getInstance().getValueByKey("server", "host"), "localhost");
        Assert.assertEquals(YamlReader.getInstance().getValueByKey("server", "port"), 8771);
    }
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實現(xiàn)選課系統(tǒng)

    java實現(xiàn)選課系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)選課系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 詳解如何全注解方式構(gòu)建SpringMVC項目

    詳解如何全注解方式構(gòu)建SpringMVC項目

    這篇文章主要介紹了詳解如何全注解方式構(gòu)建SpringMVC項目,利用Eclipse構(gòu)建SpringMVC項目,非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • idea運行java項目main方法報build failure錯誤的解決方法

    idea運行java項目main方法報build failure錯誤的解決方法

    當(dāng)在使用 IntelliJ IDEA 運行 Java 項目的 main 方法時遇到 "Build Failure" 錯誤,這通常意味著在項目的構(gòu)建過程中遇到了問題,以下是一些詳細的解決步驟,以及一個簡單的代碼示例,用于展示如何確保 Java 程序可以成功構(gòu)建和運行,需要的朋友可以參考下
    2024-09-09
  • Java Zip文件讀寫操作詳解

    Java Zip文件讀寫操作詳解

    這篇文章主要為大家詳細介紹了如何利用Java ZipInputstream、ZipOutputStream實現(xiàn)獲取每個文件中的內(nèi)容與寫入內(nèi)容,感興趣的可以動手嘗試一下
    2022-11-11
  • Springboot引入攔截器并放行swagger代碼實例

    Springboot引入攔截器并放行swagger代碼實例

    這篇文章主要介紹了Springboot引入攔截器并放行swagger代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 詳解如何使用Jersey客戶端請求Spring Boot(RESTFul)服務(wù)

    詳解如何使用Jersey客戶端請求Spring Boot(RESTFul)服務(wù)

    本篇文章主要介紹了詳解如何使用Jersey客戶端請求Spring Boot(RESTFul)服務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • java實現(xiàn)文件加密解密多種方法

    java實現(xiàn)文件加密解密多種方法

    這篇文章主要給大家介紹了關(guān)于java實現(xiàn)文件加密解密多種方法的相關(guān)資料,?Java支持多種加密解密算法,常用的有DES、AES、RSA等,需要的朋友可以參考下
    2023-07-07
  • JAVA實現(xiàn)遍歷文件夾下的所有文件(遞歸調(diào)用和非遞歸調(diào)用)

    JAVA實現(xiàn)遍歷文件夾下的所有文件(遞歸調(diào)用和非遞歸調(diào)用)

    本篇文章主要介紹了JAVA 遍歷文件夾下的所有文件(遞歸調(diào)用和非遞歸調(diào)用) ,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01
  • Java多線程編程中synchronized線程同步的教程

    Java多線程編程中synchronized線程同步的教程

    Java的synchronized關(guān)鍵字可以修飾方法和對象來構(gòu)建線程間的同步,這里我們就來共同學(xué)習(xí)Java多線程編程中synchronized線程同步的教程:
    2016-07-07
  • 一篇文章帶你了解如何正確使用java線程池

    一篇文章帶你了解如何正確使用java線程池

    這篇文章主要介紹了如何正確使用java線程池,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09

最新評論

定陶县| 莎车县| 阿拉善盟| 新昌县| 荆州市| 碌曲县| 广饶县| 永胜县| 通州市| 武陟县| 大冶市| 石台县| 吉林市| 确山县| 浦城县| 天镇县| 酒泉市| 马山县| 宜宾市| 吴江市| 甘德县| 镇宁| 东阳市| 棋牌| 化州市| 东辽县| 会泽县| 金堂县| 木兰县| 夏河县| 长春市| 太原市| 水城县| 宝坻区| 邹城市| 呼图壁县| 金湖县| 珠海市| 金溪县| 扶绥县| 丰镇市|