在springboot项目中,会在yml文件中配置一些配置文件,需要涉及到读取,这里简要介绍:直接上代码
package com.zl.unit.printunit; import org.yaml.snakeyaml.Yaml; import java.io.InputStream; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; /** * Yml文件读取 * * @author zhanglei * @ProjectName: MapDemo * @create 2019-06-06 9:42 * @Version: 1.0 * <p>Copyright: Copyright (zl) 2019</p> **/ public class YmlUtil { private static Map<String,String> allMap=new HashMap<>(); static { Yaml yaml = new Yaml(); InputStream inputStream = YmlUtil.class.getResourceAsStream("/application.yml"); Iterator<Object> result = yaml.loadAll(inputStream).iterator(); while(result.hasNext()){ Map map=(Map)result.next(); iteratorYml( map,null); } } public static void iteratorYml(Map map,String key){ Iterator iterator = map.entrySet().iterator(); while(iterator.hasNext()){ Map.Entry entry = (Map.Entry) iterator.next(); Object key2 = entry.getKey(); Object value = entry.getValue(); if(value instanceof LinkedHashMap){ if(key==null){ iteratorYml((Map)value,key2.toString()); }else{ iteratorYml((Map)value,key+"."+key2.toString()); } } if(key==null){ allMap.put(key2.toString(), StringUtil.objToString(value)); } if(key!=null){ allMap.put(key+"."+key2.toString(), StringUtil.objToString(value)); } } } public static String getYmlValue(String key){ return allMap.get(key); } }
给出yml文件位置,读取yml文件中的内容,将读取到的内容通过key value形式存放到map中
2. 读取私钥文件
在resource目录下新增私钥文件目录以及私钥文件,如下如所示:
操作代码如下:
package com.zl.unit.printunit; import org.springframework.util.ResourceUtils; import org.apache.commons.io.FileUtils; import java.io.File; /** * 文件工具读取类 * * @author zhanglei * @ProjectName: MapDemo * @create 2019-06-06 9:41 * @Version: 1.0 * <p>Copyright: Copyright (zl) 2019</p> **/ public class ReadKeysUtil { public static final String CONFIG_PATH_PREFIX = YmlUtil.getYmlValue("zl.key.path"); public static String PRIVATE_KEY = "";
static {
try {
File privateKey = ResourceUtils.getFile(CONFIG_PATH_PREFIX + "private_key");
PRIVATE_KEY = FileUtils.readFileToString(privateKey);
} catch (Exception e) {
System.out.println("资源读取错误");
}
}
}