Spring Boot中优雅的获取yml文件工具类
程序员文章站
2024-03-01 19:20:34
如何在spring boot中优雅的获取.yml文件工具类呢
代码如下:
package com.common.base.utils.base;
import...
如何在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中优雅的获取yml文件工具类
-
如何更优雅地获取spring boot yml中的值
-
Spring Boot的配置文件以及获取配置文件中的值
-
Spring Boot 使用@ConfigurationProperties注解获取配置文件中的值
-
Spring Boot中获取配置文件的值
-
spring boot 中 获取配置文件中的值
-
如何更优雅地获取spring boot yml中的值
-
spring boot中关于获取配置文件注解的使用@ConfigurationProperties、@Value、@PropertySource
-
spring通用获取ioc容器中配置的bean的工具类
-
spring boot中关于获取配置文件注解的使用@ConfigurationProperties、@Value、@PropertySource