public class CalciteDruidPropertyUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(CalciteDruidPropertyUtil.class);
private static final Properties props;
static {
props = new Properties();
try {
InputStream in = CalciteDruidPropertyUtil.class.getClassLoader().getResourceAsStream("calcite.druid.properties");
if (in != null) {
props.load(in);
}
} catch (IOException e) {
LOGGER.warn("can not find file 'calcite.druid.properties'", e);
}
}
// 根据key获取value
public static String getDruidProp(String key) {
return props.getProperty(key);
}
}
ClassPath路径即:target/classes目录
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
以上读取配置文件的代码也可写成:
InputStream in = CalciteDruidPropertyUtil.class.getResourceAsStream("/calcite.druid.properties");
2. Class.getClassLoader().getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。