java工具类11-读取yml配置文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java工具类11-读取yml配置文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5282字,纯文字阅读大概需要8分钟。
内容图文
import com.alibaba.fastjson.JSON; import com..common.ProjectConfig; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.Yaml; public class ConfigUtil { private static final Logger log = LoggerFactory.getLogger(ConfigUtil.class); private ConfigUtil() { } public static Map readYaml(String file) { if (!(new File(file)).exists()) { file = ProjectConfig.getProjectConfDir() + File.separator + file; } try { return (Map)(new Yaml()).loadAs(new FileInputStream(file), HashMap.class); } catch (FileNotFoundException var2) { log.error("文件读取异常", var2); return null; } } public static <T> T readYamlByPrefix(String file, String prefix, Class<T> clazz) { return JSON.parseObject(JSON.toJSONString(readYaml(file).get(prefix)), clazz); } public static Map<String, Object> readYamlByPrefix(String file, String prefix) { return (Map)readYaml(file).get(prefix); } public static void main(String[] args) { System.out.println(); } }
import com.alibaba.fastjson.JSON; import com.google.common.base.Preconditions; import com..common.constant.CommonConstant; import com..common.entity.EsConfigEntity; import com..common.entity.KafkaConfigEntity; import com..common.tool.ConfigUtil; import com..common.tool.FileUtil; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Properties; import java.util.function.Function; import java.util.function.Predicate; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ProjectConfig { private static final Logger log = LoggerFactory.getLogger(ProjectConfig.class); private static final String SPARK_BATCH_CONF_FILE = "spark-batch.properties"; private static final String SPARK_STREAMING_CONF_FILE = "spark-streaming.properties"; private static final String JOB_CONF_FILE = "job.yaml"; private static final String SERVICE_CONF_FILE = "service.yaml"; private static final String COMMON_CONF_FILE = "application.yaml"; private static Map<String, String> sparkBatchConf = loadConfig("spark-batch.properties"); private static Map<String, String> sparkStreamingConf = loadConfig("spark-streaming.properties"); public ProjectConfig() { } public static String getProjectHome() { return System.getenv(CommonConstant.PROJECT_HOME); } public static String getProjectConfDir() { return System.getenv(CommonConstant.PROJECT_HOME) + File.separator + "conf"; } public static String getDpsJarFile() { return System.getenv(CommonConstant.PROJECT_HOME) + File.separator + "jars" + File.separator + "libra-dps.jar"; } public static String getCommonConfFile() { return getProjectConfDir() + File.separator + "application.yaml"; } public static Map<String, String> getSparkBatchConf() { return sparkBatchConf; } public static Map<String, String> getSparkStreamingConf() { return sparkStreamingConf; } public static EsConfigEntity getESConf() { return (EsConfigEntity)JSON.parseObject(JSON.toJSONString(ConfigUtil.readYamlByPrefix("application.yaml", "es")), EsConfigEntity.class); } public static KafkaConfigEntity getKafkaConf() { return (KafkaConfigEntity)JSON.parseObject(JSON.toJSONString(ConfigUtil.readYamlByPrefix("application.yaml", "kafka")), KafkaConfigEntity.class); } public static String getIndexLimit() { return ConfigUtil.readYamlByPrefix("application.yaml", "es").get("splitLimitNum").toString(); } public static Object getCommonValue(String key) { return ConfigUtil.readYaml("application.yaml").get(key); } public static Map<String, Object> getRedisConf() { return ConfigUtil.readYamlByPrefix("application.yaml", "redis"); } public static Object getStreamingJobValue(String key) { return ConfigUtil.readYaml("job.yaml").get(key); } public static Map getStreamingJobConf() { return ConfigUtil.readYaml("job.yaml"); } public static Map getStreamingServiceConf() { return ConfigUtil.readYaml("service.yaml"); } public static List<String> getProtocols() { return Arrays.asList(ConfigUtil.readYaml("application.yaml").get("protocol").toString().split(",")); } public static Optional<String> getEsMapping(String indexName) { Preconditions.checkArgument(StringUtils.isNotBlank(indexName)); File mappingDir = new File(getProjectConfDir() + File.separator + "mapping"); return mappingDir.isDirectory() ? (Optional)Arrays.asList(mappingDir.listFiles()).stream().filter((file) -> { return indexName.equals(file.getName().split("\\.")[0]); }).map((file) -> { return FileUtil.fileToString(mappingDir + File.separator + file.getName()); }).findAny().get() : FileUtil.fileToString(indexName + ".json"); } public static Map loadConfig(String fileName) { Preconditions.checkArgument(StringUtils.isNotBlank(fileName)); String confPath = getProjectConfDir(); File file = new File(confPath.concat(File.separator).concat(fileName)); if (!file.exists()) { file = new File(fileName); } Preconditions.checkArgument(file.exists(), "未找到配置文件"); Properties properties = new Properties(); try { properties.load(new FileInputStream(file)); return properties; } catch (IOException var5) { log.error("读取配置文件异常:{}/{}", new Object[]{confPath, fileName, var5}); throw ExceptionUtil.buildRuntimeException(); } } }
内容总结
以上是互联网集市为您收集整理的java工具类11-读取yml配置文件全部内容,希望文章能够帮你解决java工具类11-读取yml配置文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。