读取配置文件的最佳方式

Best Way to read configuration file

我需要询问读取应用程序配置文件的最佳方法。 目前我正在做的是将上面的代码放在我的 Java 程序中,获取我想要的所有配置项,然后将值传递给需要变量的函数。

让我的配置文件只加载一次并且可以在其他进程(其他用户)中使用的最佳方法是什么?

File configFile = new File("D:\config.properties");

try {
    FileReader reader = new FileReader(configFile);
    Properties prop = new Properties();
    prop.load(reader);

    String dbName = prop.getProperty("dbName");
    String dBase = prop.getProperty("database");

    String strMethod1 = prop.getProperty("method1"); 
    int method1 = Integer.parseInt(strMethod1);

    String strMethod2 = prop.getProperty("method2"); 
    int method2 = Integer.parseInt(strMethod2);

} catch (IOException e) {
    returnValue = IO_EXCEPTION;
    logger.error("IOException:::" + e + "  returnValue:::" + returnValue);
}

我建议创建您自己的 class 来包装 Properties 并负责给出单独的配置值。 class 还应负责只读取一次 属性 文件(或在需要读取时)。

一旦你有了这样的class,你就有两个选择。启动一次并让其他 classes 静态访问它(可能作为需要配置的 singleton). Or don't use a static instance and pass it as a dependency 到 classes。

使用静态引用是更简单的方法,但它会使测试复杂化,因为现在您的所有 classes 都静态地依赖于那个 class。将其作为依赖项传递可以提高可测试性,但实际上需要传递 class 或使用某种依赖注入 framework/library.

最后,我建议不要直接使用 Properties。有一些不错的配置库可以简化复杂项目中处理配置的许多普通方面。换句话说,那个轮子已经被发明了,并且被重新发明了很多次。

我个人喜欢使用 owner but there's also apache commons configuration 以及其他库。