我需要我的Java应用程序从文件中读取配置属性并在整个类中使用它们。我正在考虑一个单独的类,它将为文件中的每个属性返回property_key:property_value
的映射。然后我会在其他类中读取此映射中的值。
也许还有其他更常用的选项?
我的属性文件很简单,大约有15个条目。
答案 0 :(得分:9)
只需使用java.util.Properties
加载它。它已经实现了Map
。
您可以静态加载和获取属性。以下是假设您在config.properties
包中有com.example
个文件的示例:
public final class Config {
private static final Properties properties = new Properties();
static {
try {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
properties.load(loader.getResourceAsStream("com/example/config.properties"));
} catch (IOException e) {
throw new ExceptionInInitializerError(e);
}
}
public static String getSetting(String key) {
return properties.getProperty(key);
}
// ...
}
可以用作
String foo = Config.getSetting("foo");
// ...
如果需要,您可以通过接口抽象此实现,并通过抽象工厂获取实例。