package com.opslab.util; import org.apache.log4j.Logger; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.List; import java.util.Properties; /** * 配置相关的一些辅助类 */ public class ConfigUtil { private static Logger logger = Logger.getLogger(ConfigUtil.class); /** * 获取配置文件资源 * * @return */ public static URL findAsResource(final String path) { URL url = null; ClassLoader contextClassLoader = ClassUtil.getContextClassLoader(); if (contextClassLoader != null) { url = contextClassLoader.getResource(path); } if (url != null) return url; url = ConfigUtil.class.getClassLoader().getResource(path); if (url != null) return url; url = ClassLoader.getSystemClassLoader().getResource(path); return url; } /** * @param path * @return */ public static String resourcePath(final String path) { URL asResource = findAsResource(path); return new File(asResource.getFile()).getPath(); } private static InputStream getConfigStream(final String path) throws RuntimeException { try { URL url = new URL(path); return url.openStream(); } catch (IOException e) { throw new RuntimeException("Unable to open config file: " + path); } } /** * 获取资源流 * * @param path * @return * @throws IOException */ private static InputStream resourceStream(final String path) throws IOException { URL asResource = findAsResource(path); return asResource.openStream(); } /** * 获取资源属性 * * @param path * @return * @throws IOException */ public static Properties getConfigProperties(String path) throws IOException { Properties properties = new Properties(); properties.load(resourceStream(path)); return properties; } }