Spring boot 獲取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<>();
/**
* 根據檔名獲取yml的檔案內容
* @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;
}
/**
* 根據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());
}
}
相關文章
- Spring Boot EL獲取配置檔案中的值的方式Spring Boot
- spring cloud+spring boot 電子商務spring boot獲取配置檔案的屬性CloudSpring Boot
- SpringBoot static 靜態方法獲取 yml 配置檔案Spring Boot
- Spring Boot、Nacos配置檔案properties、yml、yaml的優先順序Spring BootYAML
- java獲取專案路徑工具類Java
- 反射獲取注入到spring中的類物件的工具類反射Spring物件
- @PropertySource 註解實現讀取 yml 檔案
- Java讀取Json檔案工具類JavaJSON
- Spring Boot讀取配置檔案的幾種方式Spring Boot
- Spring boot 讀取properties檔案的四種方式Spring Boot
- help:如何獲取類檔案的路徑
- Spring Boot 配置檔案Spring Boot
- springboot:讀取application.yml檔案Spring BootAPP
- Spring Boot(十七):使用 Spring Boot 上傳檔案Spring Boot
- Jasypt工具類(jasypt-spring-boot-starter)Springboot
- spring boot 獲取客戶端ip資訊Spring Boot客戶端
- 精進 Spring Boot 03:Spring Boot 的配置檔案和配置管理,以及用三種方式讀取配置檔案Spring Boot
- Spring Boot啟動後讀取jar包內部檔案Spring BootJAR
- spring boot 結合Redis 實現工具類Spring BootRedis
- Spring Boot 分片上傳檔案Spring Boot
- Spring Boot的檔案上傳Spring Boot
- spring boot配置檔案相關Spring Boot
- spring boot 執行sql檔案Spring BootSQL
- Spring Boot 配置檔案總結Spring Boot
- spring-boot-route(二)讀取配置檔案的幾種方式Springboot
- 獲取檔案列表 .net
- 工具類,關於手工讀取 properties檔案引數
- spring boot學習(7)— 配置資訊的獲取方式Spring Boot
- 【Spring Boot】使用JDBC 獲取相關的資料Spring BootJDBC
- YAM yml 配置檔案介紹
- application.yml配置檔案APP
- Spingboot 讀取 yml 配置檔案裡的引數值boot
- 5種高大上的yml檔案讀取方式,你知道嗎?
- 建立獲取Springbean物件工具類SpringBean物件
- 在Spring Boot中從類路徑載入檔案解決方案Spring Boot
- Spring Boot的配置檔案管理技巧Spring Boot
- 遞迴獲取檔案列表遞迴
- 獲取跟蹤檔案位置