2010-11-30 7 views
0

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

Это класс я использую для доступа к свойствам называется 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) и получить доступ к нему оттуда? Каков наилучший способ сделать это?

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

ответ

0

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

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

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^