Задача вычитать из конфига ключ и при необходимости использовать ключ из памяти, а не постоянно вычитывать и тратить ресурсы
Проблема что не выходит толком реализовать с помощью синглтона конструктор класса (public LoggerImpl (PropertiesLoader propertiesLoader)) который считывает из файла конфига строчку с ключем "accessToken".
Подскажите, пожалуйста, как можно реализвать Синглтотом одноразовое считывание файла?
package org.BrovaryCityCouncil.logging;
import com.rollbar.Rollbar;
import org.BrovaryCityCouncil.properties.PropertiesLoader;
public class LoggerImpl implements Logger {
private PropertiesLoader propertiesLoader;
private Rollbar rollbar;
private static LoggerImpl instance;
public LoggerImpl() {
super();
}
public synchronized LoggerImpl getInstance(){
if (instance == null){
instance = new LoggerImpl(propertiesLoader);
}
return instance;
}
public LoggerImpl (PropertiesLoader propertiesLoader) {
this.propertiesLoader = propertiesLoader;
// считываем из файла конфига
rollbar = new Rollbar(propertiesLoader.getProperty("accessToken"), "production");
}
public void logWarning(Throwable error) {
rollbar.warning(error);
}
public void logCritical(Throwable error) {
rollbar.critical(error);
}
public void logInfo(Throwable error) {
rollbar.info(error);
}
public void logDebug(Throwable error) {
rollbar.debug(error);
}
public void logger(Throwable error) {
rollbar.log(error);
}
public void logError(Throwable error) {
rollbar.error(error);
}
public Rollbar getRollbar() throws Exception {
return rollbar;
}
}
Сlass PropertiesLoaderImpl
public class PropertiesLoaderImpl implements PropertiesLoader {
@Override
public String getProperty(String propertyName) {
Properties properties = new Properties();
try {
FileInputStream file = new FileInputStream("src/main/resources/config.properties");
properties.load(file);
return properties.getProperty(propertyName);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытался сделать java коннектор к тарантул 172 в NetBeans, делал по мануалу с connector java for tarantool,при запуске, программа ссылается на отсутствие главного...
Существует такая реализация синглтона на основе double checked locking (пункт 2):
Есть активити в которой реализую метод getMap(), но так как он depricated я его не могу реализовать в полной мереНашёл несколько вариантов решения...