Когда читать файл .properties в веб-приложении Java - PullRequest
0 голосов
/ 30 ноября 2010

Я занимаюсь разработкой веб-приложения с использованием Java EE6 и JSF 2.0. У меня есть файл .properties, в котором я храню несколько констант, которые мне нужно легко изменить перед развертыванием приложения. Я знаю, как прочитать файл свойств, но вопрос в том, когда?

Это класс, который я использую для доступа к свойствам с именами CLIENT_ID и CLIENT_SECRET:

public class FConnectProperties {

    Properties properties;

    public FConnectProperties() throws FileNotFoundException, IOException{
        properties = new Properties();
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        InputStream stream = classLoader.getResourceAsStream("/FConnect/FConnect.properties");
        properties.load(stream);
        stream.close();
    }

    public String getClientID(){
        return properties.getProperty("CLIENT_ID");
    }

    public String getClientSecret(){
        return properties.getProperty("CLIENT_SECRET");
    }

Поскольку этот класс считывает файл свойств с диска, можно ли создавать его экземпляры каждый раз, когда мне нужен к ним доступ? Или я должен создать его один раз во время запуска приложения (возможно, из Singleton Bean) и получить к нему доступ оттуда? Каков наилучший способ сделать это?

Свойства не меняются после запуска приложения. Я только читаю их, но никогда не обновляю.

Ответы [ 2 ]

0 голосов
/ 27 января 2011

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

0 голосов
/ 30 ноября 2010

Я бы посоветовал прочитать файл один раз при запуске и, как вы говорите, держать их в одиночном.Так как я предполагаю, что ваши свойства представляют собой набор пар ключ / значение, которые не так уж велики, я бы сказал, что они должны преуспеть в структуре данных типа карты.вам нужно получить к ним доступ, тогда их чтение с диска может стать дорогостоящим.

...