读取配置文件的最佳方式
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 以及其他库。
我需要询问读取应用程序配置文件的最佳方法。 目前我正在做的是将上面的代码放在我的 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 以及其他库。