2015-03-05 1 views
1

У меня есть файл свойств, который я часто обновляю. Чтобы перезагрузить файл автоматически, я использовал настройку сообщества, но изменение не сразу отразилось в файле свойств. Я вижу изменения только после перезапуска сервера, что означает, что автоматическая перезагрузка не работает. Я включил все необходимые файлы jar.Файл свойств автоматической перезагрузки с использованием конфигурации сообщества не работает

PropertiesConfiguration property = null; 
    try { 
     property = new PropertiesConfiguration(PROPERTY_FILENAME); 
     property.setReloadingStrategy(new FileChangedReloadingStrategy()); 

    } catch (ConfigurationException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

Вы можете включать в себя полный исходный код? Также попробуйте получить доступ к свойству до изменения, а затем, чтобы убедиться, что это заставляет обновить – farrellmr

ответ

2

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

  • Не обнаруживает изменений. Удалить файл без остановки приложения

    public class PropStandaloneConfigurationTest { 
        public static void main(String[] args) throws ConfigurationException, InterruptedException { 
        final PropertiesConfiguration config = new PropertiesConfiguration("app-project.properties"); 
        config.setListDelimiter(','); 
        config.setAutoSave(true); 
        FileChangedReloadingStrategy reload = new FileChangedReloadingStrategy(); 
        reload.setRefreshDelay(2000L); 
        config.setReloadingStrategy(reload); 
    
        Provider<Integer> cacheRetriesProvider = new Provider<Integer>() { 
         @Override 
         public Integer get() { 
         return config.getInt("cache.retries"); 
         } 
        }; 
    
        while (true) { 
         System.out.println(cacheRetriesProvider.get()); 
         Thread.sleep(3000L); 
        } 
        } 
    } 
    
  • обнаруживает изменения и перезагружает файл

    ... 
        final PropertiesConfiguration config = new PropertiesConfiguration("/usr/local/ws/app-project/src/test/resources/app-project.properties"); 
        ... 
    
Смежные вопросы