欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot中優(yōu)雅的獲取yml文件工具類

 更新時(shí)間:2018年12月07日 10:06:56   作者:執(zhí)筆記憶的空白  
今天小編就為大家分享一篇關(guān)于Spring Boot中優(yōu)雅的獲取yml文件工具類,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

如何在spring boot中優(yōu)雅的獲取.yml文件工具類呢

代碼如下:

package com.common.base.utils.base;
import com.common.base.generator.ResourceManager;
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 = "bootstrap.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;
    InputStream in = ResourceManager.class.getClassLoader().getResourceAsStream(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 = "";
      if(StringUtils.isNotNull(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;
  }
  /**
   * 獲取bootstrap.yml的name
   * @return
   */
  public static String getApplicationName(){
    return getYmlByFileName(bootstrap_file).get("spring.application.name");
  }
  /**
   * 獲取bootstrap.yml的name
   * @return
   */
  public static String getApplicationName1(){
    String name = getYmlByFileName(bootstrap_file).get("spring.application.name");
    return name + "center";
  }
  public static void main(String[] args) {
    System.out.println(getApplicationName());
  }
}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Spring事務(wù)@Transactional注解四種不生效案例場(chǎng)景分析

    Spring事務(wù)@Transactional注解四種不生效案例場(chǎng)景分析

    這篇文章主要為大家介紹了Spring事務(wù)@Transactional注解四種不生效的案例場(chǎng)景示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • mybatis查詢SqlServer慢問(wèn)題及解決

    mybatis查詢SqlServer慢問(wèn)題及解決

    這篇文章主要介紹了mybatis查詢SqlServer慢問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • RabbitMQ消息有效期與死信的處理過(guò)程

    RabbitMQ消息有效期與死信的處理過(guò)程

    利用DLX,當(dāng)消息在一個(gè)隊(duì)列中變成死信?(dead?message)?之后,它能被重新publish到另一個(gè)Exchange,這個(gè)Exchange就是DLX,本文重點(diǎn)給大家介紹RabbitMQ消息有效期與死信的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • springboot 啟動(dòng)如何排除某些bean的注入

    springboot 啟動(dòng)如何排除某些bean的注入

    這篇文章主要介紹了springboot 啟動(dòng)如何排除某些bean的注入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java多線程的原子性,可見(jiàn)性,有序性你都了解嗎

    Java多線程的原子性,可見(jiàn)性,有序性你都了解嗎

    這篇文章主要為大家詳細(xì)介紹了Java多線程的原子性,可見(jiàn)性,有序性,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 詳解maven中profiles使用實(shí)現(xiàn)

    詳解maven中profiles使用實(shí)現(xiàn)

    本文主要介紹了maven中profiles使用實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • java調(diào)用未知類的指定方法簡(jiǎn)單實(shí)例

    java調(diào)用未知類的指定方法簡(jiǎn)單實(shí)例

    這篇文章介紹了java調(diào)用未知類的指定方法簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下
    2013-09-09
  • 關(guān)于Mysql的四種存儲(chǔ)引擎

    關(guān)于Mysql的四種存儲(chǔ)引擎

    這篇文章主要介紹了關(guān)于Mysql的四種存儲(chǔ)引擎,MySql的核心就是存儲(chǔ)引擎,不同的存儲(chǔ)引擎提供不同的存儲(chǔ)機(jī)制、索引技巧、鎖定水平等功能,使用不同的存儲(chǔ)引擎,還可以 獲得特定的功能,需要的朋友可以參考下
    2023-05-05
  • Java 中的CharArrayReader 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java 中的CharArrayReader 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    CharArrayReader 是字符數(shù)組輸入流。它和ByteArrayInputStream類似,只不過(guò)ByteArrayInputStream是字節(jié)數(shù)組輸入流,而CharArray是字符數(shù)組輸入流。CharArrayReader 是用于讀取字符數(shù)組,它繼承于Reader
    2017-05-05
  • springmvc url處理映射的三種方式集合

    springmvc url處理映射的三種方式集合

    這篇文章主要介紹了springmvc url處理映射的三種方式集合,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論