Мне нужно было именно это для моего недавнего приложения, и я не мог использовать какие-либо специфичные для сервера приложений методы, так как мне нужно было, чтобы некоторые консольные приложения работали на cronjobs, чтобы получить к ним доступ.
Я в основном сделал пару небольших таблицсоздать базу данных конфигурации в стиле реестра.У меня есть таблица ключей (все они имеют родительские ключи, чтобы их можно было упорядочить в древовидной структуре) и таблица значений, которые прикреплены к ключам.Все ключи и значения имеют имена, поэтому мои функции доступа выглядят так:
openKey("/my_app");
createKey("basic_settings");
openKey("basic_settings");
createValue("log_directory","c:\logs");
getValue("/my_app/basic_settings","log_directory");
Древовидная структура позволяет логически разделять похожие данные (например, вы можете иметь значение «log_directory» под несколькими различными ключами) иизбегает слишком многословных имен, которые вы найдете в файлах свойств.
Все значения являются просто строками (varchar2 в БД), поэтому есть некоторые издержки при преобразовании логических значений и чисел: но это только данные конфигурации, так что кого это волнует??
Я также создаю значение «settings_changed» со строкой даты и времени: так что любое приложение может быстро определить, нужно ли ему обновить свою конфигурацию (вам, очевидно, нужно помнить, чтобы установить его при изменении чего-либо, хотя).
Возможно, уже есть инструменты, позволяющие делать подобные вещи, но это было всего лишь за несколько дней написания кода, и это доставляет удовольствие.Я добавил инструменты командной строки для редактирования и загрузки / выгрузки частей или всего дерева, а затем сделал быстрый графический редактор на Java Swing.