Вопрос

У меня есть следующие данные:

User   System    SubSystem
user1  System1   SubSystem1
user2  System1   SubSystem2
user3  N/A       N/A

и мне нужно иметь возможность определять кортеж системы/подсистемы у пользователя.Я должен иметь возможность добавлять пользователей в любое время без перестройки и повторного развертывания системы.

Я знаю, что база данных будет лучшим вариантом, но Я не могу использовать таблицу базы данных.

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

Не то чтобы это имело значение, но я использую JAVA в weblogic 10.3.

Это было полезно?

Решение

Я бы выбрал что-то простое, например:

user1 = userValue
user1.system = systemValue
user1.system.subsystem= subsystemValue
user2 = userValue
user2.system = systemValue
user2.system.subsystem= subsystemValue

user(id) используется как «первичный» ключ в ваших свойствах и очень простое объединение ваших полей для хранения значений вашей таблицы.Я использую это очень часто:поверьте мне, это гораздо мощнее, чем может показаться :)

Другие советы

Вы можете сделать это с помощью HashMap (как сейчас) и сохранить его, используя XStream.

XStream позволяет сериализовать/десериализовать объекты Java в/из читаемого/редактируемого XML.Затем вы можете записать это (скажем) в файловую систему, и результат можно будет редактировать вручную.

Обратной стороной является то, что это сериализация в XML объекта Java, поэтому она не так очевидна, как файл свойств, который нужно редактировать.Тем не менее, он по-прежнему очень читабелен и легко понятен любому, кто хоть немного разбирается в технических вопросах.Является ли это подходящим решением, зависит от аудитории этого файла.

Звучит как то, что вы вполне могли бы использовать ЯМЛ для..
ЗмеяYAML выглядит работоспособной реализацией Java.

Для этого проекта я воспользовался решением, предложенным Оливье.Некоторые ограничения проекта (наследие проекта) не позволяют мне использовать, возможно, лучшее решение - использование XStream.

Спасибо за обратную связь, ребята

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top