项目中读取配置文件工具类

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获取资源。 

 

你可能感兴趣的:(JAVA知识)