Как использовать файл свойств конфигурации во всех классах? - PullRequest
3 голосов
/ 05 октября 2011

Мне нужно, чтобы приложение Java считывало свойства конфигурации из файла и использовало их во всех классах. Я имею в виду отдельный класс, который бы возвращал карту property_key:property_value для каждого из свойств в файле. Тогда я бы прочитал значения из этой карты в других классах. Может быть, есть другие, более часто используемые варианты?

Мой файл свойств прост и содержит около 15 записей.

1 Ответ

9 голосов
/ 05 октября 2011

Просто используйте 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");
// ...

При необходимости вы можете абстрагировать эту реализациюпрочь интерфейсом и получи экземпляр абстрактной фабрикой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...