Ответ 1
Класс Java Properties (api здесь) указывает методы "загрузки" и "хранения", которые должны делать именно это. Используйте FileInputStream и FileOutputStream, чтобы указать файл для его сохранения.
Я пишу автономное приложение java для мониторинга производства. после запуска api настроен на значения по умолчанию, которые установлены в файле .properties. в рабочем состоянии конфигурация api может быть изменена, и файл .properties должен быть соответствующим образом обновлен. есть ли способ достичь этого? или есть ли какие-либо другие подходы к реализации этого?
Заранее спасибо
Класс Java Properties (api здесь) указывает методы "загрузки" и "хранения", которые должны делать именно это. Используйте FileInputStream и FileOutputStream, чтобы указать файл для его сохранения.
Вы можете использовать очень простой подход, основанный на классе java.util.Properties, который действительно имеет загрузить и store методы, которые можно использовать совместно с FileInputStream и FileOutputStream
Но на самом деле я бы рекомендовал использовать существующую конфигурационную библиотеку, например Commons Configuration (среди прочих). Проверьте Свойства Howto, чтобы узнать, как загружать, сохранять и автоматически перезагружать файл свойств с помощью его API.
java.util.Properties не предоставляет время перезагрузки из коробки, насколько мне известно. Commons Configuration обеспечивает поддержку перезагрузки конфигурации во время выполнения. Стратегия перезагрузки может быть настроена с помощью настройки ReloadingStrategy в объекте PropertiesConfiguration. Он также предлагает различные другие полезные утилиты для настройки вашего приложения.
Я полностью согласен с тем, что API конфигурации Apache Commons действительно хороший выбор.
Этот пример обновляет свойства во время выполнения
File propertiesFile = new File(getClass().getClassLoader().getResource(fileName).getFile());
PropertiesConfiguration config = new PropertiesConfiguration(propertiesFile);
config.setProperty("hibernate.show_sql", "true");
config.save();
Из сообщения как обновить файл свойств в Java
Надеюсь на эту помощь!
В дополнение к методу load
и store
класса Properties
вы также можете использовать библиотеку конфигурации Apache Commons Configuration, которая предоставляет функции для простого управления конфигурационными файлами (и не только файлами .properties).
API общей конфигурации Apache предоставил различные стратегии для перезагрузки файлов свойств во время выполнения. FileChangedReloadingStrategy - один из них. Отправьте ссылку , чтобы увидеть пример перезагрузки файла свойств во время выполнения с помощью FileChangedReloadingStrategy.