读取不同位置的配置文件

  在开发和测试环境中,很容易混淆如何获取不同位置的配置文件。为了避免重复造轮子,在此记录一下自己的解决方案:

  可以提出如下设想:

    1、在开发环境下,读取resources下的config.properties文件
    2、在生产环境下,读取jar文件同级目录下的config.properties文件,如果没有该config.properties文件,则读取jar包中的config.properties

 1 public class ConfigUtils {
 2     /**
 3      * 根据配置文件中的内容获取配置信息内容
 4      * @param property 配置的属性
 5      * @return 配置属性值
 6      * @throws IOException
 7      */
 8     public static String getProperty(String property) throws IOException {
 9         Properties properties = new Properties();
10         InputStream inputStream = null;
11         // 获取.jar文件同级目录下,config.properties文件的绝对路径
12         String configFilePath = System.getProperty("user.dir") + File.separator + "config.properties";
13         // 如果在.jar文件同级目录下,config.properties文件存在,则使用该文件作为配置文件
14         if (new File(configFilePath).exists()) {
15             inputStream = new BufferedInputStream(new FileInputStream(configFilePath));
16         } else {
17             //如果在.jar文件同级目录下,config.properties文件不存在,则使用.jar文件中的config.properties文件作为配置文件
18             inputStream = ConfigUtils.class.getClassLoader().getResourceAsStream("config.properties");
19         }
20         properties.load(inputStream);
21         String value = properties.getProperty(property);
22         return value;
23     }
24 }
原文地址:https://www.cnblogs.com/ppcoder/p/9006036.html