如何在整个类中使用配置属性文件?

时间:2011-10-05 17:35:49

标签: java properties

我需要我的Java应用程序从文件中读取配置属性并在整个类中使用它们。我正在考虑一个单独的类,它将为文件中的每个属性返回property_key:property_value的映射。然后我会在其他类中读取此映射中的值。 也许还有其他更常用的选项?

我的属性文件很简单,大约有15个条目。

1 个答案:

答案 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");
// ...

如果需要,您可以通过接口抽象此实现,并通过抽象工厂获取实例。