Пользовательские настройки в приложении Java EE - PullRequest
7 голосов
/ 24 июня 2010

У меня есть растущее веб-приложение, которое теперь должно иметь возможность хранить пользовательские и системные настройки / настройки. В прошлом я всегда катал свою собственную систему предпочтений для веб-приложений, но мне было интересно, что другие люди делают, чтобы решить эту проблему? Существуют ли библиотеки предпочтений для веб-приложений, которые люди могут порекомендовать?

В идеале пользовательские настройки должны иметь значение по умолчанию, которое пользователь затем может переопределить. Не все предпочтения должны быть представлены пользователю, хотя некоторые будут относиться к таким вещам, как последняя позиция диалогового окна.

Если я пойду по пути «Roll-my-own», я думаю, что это будет отдельная таблица предпочтений, в которой все предпочтения будут сохранены как строки, преобразованные в их истинный, примитивный тип данных, как требуется. например таблица что-то вроде ключа, user_key, setting_name, setting_value. Я предпочитаю такой подход к столбцу для каждого типа данных, потому что он предотвращает случайное окончание настройки двумя значениями, и потребитель параметра должен знать, какой тип данных они хотят.

Ответы [ 2 ]

3 голосов
/ 24 июня 2010

Один из подходов, который мы используем:

  • все необязательные свойства имеют значения по умолчанию в коде
  • предоставляют файл свойств с веб-приложением, в котором мы определяем технические ориентированные свойства
  • запрашивает таблицу SQL при запуске приложения, чтобы загрузить в основном функционально ориентированные свойства

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

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

0 голосов
/ 24 июня 2010

Для этого есть JDK API: java.util.prefs

http://java.sun.com/j2se/1.4.2/docs/guide/lang/preferences.html

...