mapeamento de dados em arquivos de propriedades
-
03-07-2019 - |
Pergunta
Eu tenho os seguintes dados:
User System SubSystem
user1 System1 SubSystem1
user2 System1 SubSystem2
user3 N/A N/A
e eu preciso ser capaz de determinar o sistema / subsistema de tupla do usuário. I deve ser capaz de adicionar usuários a qualquer momento sem reconstruir e reimplantar o sistema.
Eu sei que o banco de dados seria a melhor opção aqui, mas Eu não posso usar uma tabela de banco de dados.
Actualmente, eu tê-lo mapeada usando um mapa de hash, mas eu não quero que ele seja codificado. Eu estava pensando sobre como usar um arquivo de propriedades, mas não posso imaginar como eu iria implementá-lo. Alguém tem alguma sugestão?
Não que isso importe, mas eu estou usando JAVA, no WebLogic 10.3.
Solução
Gostaria de ir para algo tão simples como:
user1 = userValue
user1.system = systemValue
user1.system.subsystem= subsystemValue
user2 = userValue
user2.system = systemValue
user2.system.subsystem= subsystemValue
user (id) é usado como chave de "primário" em suas propriedades, e uma concatenação muito simples de seus campos a guardar os seus valores da tabela. Eu uso isso com muita frequência: a confiança em mim, é muito mais poderosa do que pode parecer :)
Outras dicas
Você pode fazer isso usando um HashMap (como você faz agora) e armazená-lo usando XStream .
XStream permite serialise / deserialise objetos Java para / de XML legível / editável. Você pode então escrever isso para (digamos) um sistema de arquivos, eo resultado é editável com a mão.
A desvantagem é que é uma serialização em XML de um objeto Java, por isso, não imediatamente óbvio como um arquivo de propriedades para editar. No entanto, ainda é muito legível e facilmente compreendida por qualquer pessoa remotamente técnico. Se esta é uma solução adequada depende do público deste arquivo.
Para este projeto eu tenho ido com a solução proposta por Olivier. Algum projeto contrainst (legado do projeto) impedir-me para ir com um provavelmente melhor solução de usar XStream.
Thx para os caras feed back