2015-01-16 3 views
0

У меня есть атрибут в файле свойств. скажем, «х». В моем классе Java я использую этот x в цикле. Итак, первый цикл цикла выполняется, он загружается из файла свойств и со второго раза, он берет значение из памяти, не загружая каждый раз реквизит. Теперь, если я хочу изменить значение x в файле свойств, могу ли я загрузить это значение без перезапуска приложения? Если да, то как?Изменение файла свойств во время работы приложения

Также есть ли Java-эквивалент для Session_OnStart в .net? Я слышал, что Session_OnStart в .net служит для этой цели

+0

Смотрите также https://stackoverflow.com/questions/13815008/reloading-properties-files-when-changed?rq=1 – DNA

+0

У вас может быть экран переднего конца, который позволяет вам изменить это значение. Затем после изменения также обновите сеанс ... – brso05

+0

Просьба описать функциональность, которую вы пытаетесь реализовать. Это звучит как обходное решение с лучшим решением. – chrylis

ответ

0

Вы можете загружать и анализировать свойства каждый раз, когда запрашивается переменная.

class RefreshingProperties extends Properties { 

    private final File file; 

    public RefreshingProperties (File file) throws IOException { 
    this.file = file; 
    refresh(); 
    } 

    private void refresh() throws IOException { 
    load (new FileInputStream (file)); 
    } 

    @Override 
    public String getProperty (String name) { 
    try { refresh(); } 
    catch (IOException e) {} 
    return super.get (name); 
    } 
} 

Вы можете настроить это, чтобы перезарядить только когда определенный период времени истекает

+0

Если мне нужно использовать это в своем классе, мне нужно загрузить RefreshingProperties вместо файла свойств? Я имею в виду, вместо свойств prop = new Properties(), RefreshingProperties prop = new RefreshingProperties() ?? – Jenny

+0

Также будут ли возникать проблемы с производительностью, так как я продолжаю перезагружать файл prop? – Jenny

+0

Да, очевидно, вам нужно использовать класс, чтобы использовать его функциональность. Да, очевидно, что затраты ресурсов и производительности связаны с чтением и анализом файла, а не с его выполнением. –

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