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

java如何獲取yml配置文件工具類

 更新時(shí)間:2024年10月31日 16:02:38   作者:秋秋秋秋秋雨  
本文介紹了java獲取yml配置文件的工具類引入pom文件的方法,首先,創(chuàng)建一個(gè)與工具類同名的類,然后將工具類的代碼復(fù)制到新創(chuàng)建的類中,運(yùn)行后輸出:0*/1***?完成操作,此方法簡(jiǎn)單易行,適合初學(xué)者使用

java獲取yml配置文件工具類

引入pom文件

        <!--讀取yml文件-->
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <version>1.26</version>
        </dependency>

創(chuàng)建一個(gè)同樣名稱的類

然后復(fù)制過(guò)去就好了

package com.edgedo.utils;


import jodd.util.StringUtil;
import org.yaml.snakeyaml.Yaml;

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

/**
 * yml文件工具類
 */
public class YmlUtils {
	// 配置文件的名稱
    private static String bootstrap_file = "application-timetask.yml";

    private static Map<String,String> result = new HashMap<>();

    /**
     * 根據(jù)文件名獲取yml的文件內(nèi)容
     * @return
     */
    public static Map<String,String> getYmlByFileName(String file){
        result = new HashMap<>();
        if(file == null){
            file = bootstrap_file;
        }
        // 注意這里的config,看你實(shí)際情況來(lái)
        InputStream in = YmlUtils.class.getClassLoader().getResourceAsStream("config/"+file);
        Yaml props = new Yaml();
        Object obj = props.loadAs(in,Map.class);
        Map<String,Object> param = (Map<String, Object>) obj;

        for(Map.Entry<String,Object> entry:param.entrySet()){
            String key = entry.getKey();
            Object val = entry.getValue();

            if(val instanceof Map){
                forEachYaml(key,(Map<String, Object>) val);
            }else{
                result.put(key,val.toString());
            }
        }
        return result;
    }

    /**
     * 根據(jù)key獲取值
     * @param key
     * @return
     */
    public static String getValue(String key){
        Map<String,String> map = getYmlByFileName(null);
        if(map==null)return null;
        return map.get(key);
    }


    /**
     * 遍歷yml文件,獲取map集合
     * @param key_str
     * @param obj
     * @return
     */
    public static Map<String,String> forEachYaml(String key_str,Map<String, Object> obj){
        for(Map.Entry<String,Object> entry:obj.entrySet()){
            String key = entry.getKey();
            Object val = entry.getValue();

            String str_new = "";
            //這是是對(duì)key_str判空,如果沒有util工具類可以自己改一下,key_str不等于空就行了
            if(StringUtil.isNotBlank(key_str)){
                str_new = key_str+ "."+key;
            }else{
                str_new = key;
            }
            if(val instanceof Map){
                forEachYaml(str_new,(Map<String, Object>) val);
            }else{
                result.put(str_new,val.toString());
            }
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(getValue("timetask.Heartbeat.cron.timingHeartbeat"));
    }


}

輸出:0 */1 * * * ?

總結(jié)

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

相關(guān)文章

  • Spring?Data?Elasticsearch使用方式(Elasticsearch)

    Spring?Data?Elasticsearch使用方式(Elasticsearch)

    這篇文章主要介紹了Spring?Data?Elasticsearch使用方式(Elasticsearch),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Maven發(fā)布項(xiàng)目到Nexus私有服務(wù)器

    Maven發(fā)布項(xiàng)目到Nexus私有服務(wù)器

    本文主要介紹了Maven發(fā)布項(xiàng)目到Nexus私有服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解Spring注入集合(數(shù)組、List、Map、Set)類型屬性

    詳解Spring注入集合(數(shù)組、List、Map、Set)類型屬性

    這篇文章主要介紹了詳解Spring注入集合(數(shù)組、List、Map、Set)類型屬性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • SpringBoot war包部署到Tomcat服務(wù)器

    SpringBoot war包部署到Tomcat服務(wù)器

    這篇文章主要介紹了SpringBoot war包部署到Tomcat服務(wù)器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 模仿百度紅包福袋界面實(shí)例代碼

    模仿百度紅包福袋界面實(shí)例代碼

    新年到新年到,紅包搶不停。在我搶紅包的時(shí)候意外的發(fā)現(xiàn)了百度的福袋界面挺不錯(cuò)的,于是抽時(shí)間專門寫篇文章來(lái)完成百度紅包界面吧
    2016-02-02
  • springboot聚合工程的部署與深入講解

    springboot聚合工程的部署與深入講解

    最近在寫一個(gè)商城,使用Maven聚合工程來(lái)管理,但是其中搭建環(huán)境遇見了各種的坑,下面這篇文章主要給大家介紹了關(guān)于springboot聚合工程部署的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • IDEA啟動(dòng)后控制臺(tái)不報(bào)錯(cuò),但是頁(yè)面訪問(wèn)404的解決方案

    IDEA啟動(dòng)后控制臺(tái)不報(bào)錯(cuò),但是頁(yè)面訪問(wèn)404的解決方案

    文章瀏覽閱讀1.7w次,點(diǎn)贊23次,收藏71次。本文解決了一個(gè)SSM項(xiàng)目中因路徑配置不當(dāng)導(dǎo)致的404錯(cuò)誤問(wèn)題,通過(guò)調(diào)整控制器中的URL映射和視圖返回路徑,最終實(shí)現(xiàn)了項(xiàng)目的正常運(yùn)行。
    2026-04-04
  • Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之單向鏈表

    Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之單向鏈表

    單向鏈表特點(diǎn)是鏈表的鏈接方向是單向的,訪問(wèn)要通過(guò)順序讀取從頭部開始。鏈表是使用指針構(gòu)造的列表,是由一個(gè)個(gè)結(jié)點(diǎn)組裝起來(lái)的,又稱為結(jié)點(diǎn)列表。其中每個(gè)結(jié)點(diǎn)都有指針成員變量指向列表中的下一個(gè)結(jié)點(diǎn),head指針指向第一個(gè)結(jié)點(diǎn)稱為表頭,而終止于最后一個(gè)指向nuLL的指針
    2022-02-02
  • Java實(shí)現(xiàn)多線程同步五種方法詳解

    Java實(shí)現(xiàn)多線程同步五種方法詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)多線程同步五種方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 使用Springboot自定義轉(zhuǎn)換器實(shí)現(xiàn)參數(shù)去空格功能

    使用Springboot自定義轉(zhuǎn)換器實(shí)現(xiàn)參數(shù)去空格功能

    這篇文章主要介紹了使用Springboot自定義轉(zhuǎn)換器實(shí)現(xiàn)參數(shù)去空格功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

尚义县| 武义县| 桐梓县| 天镇县| 吉林省| 文化| 宁海县| 逊克县| 额济纳旗| 通化县| 康乐县| 桐梓县| 崇礼县| 鹤壁市| 陈巴尔虎旗| 夹江县| 耿马| 宁陕县| 西乌珠穆沁旗| 富平县| 大化| 甘泉县| 库伦旗| 伊春市| 荥阳市| 平武县| 富民县| 襄汾县| 当阳市| 临夏市| 凯里市| 洛宁县| 鄂托克前旗| 永清县| 南和县| 思南县| 克什克腾旗| 邻水| 常德市| 元氏县| 龙海市|