mapping-Daten in den Eigenschaften von Dateien
-
03-07-2019 - |
Frage
Ich habe die folgenden Daten:
User System SubSystem
user1 System1 SubSystem1
user2 System1 SubSystem2
user3 N/A N/A
und ich brauche, um in der Lage zu bestimmen die system - /subsystem-Tupel aus den Benutzer.Ich muss in der Lage sein, um Benutzer hinzuzufügen, zu jeder Zeit, ohne auf den Wiederaufbau und die erneute Bereitstellung des Systems.
Ich weiß, die Datenbank wäre die beste option, hier aber Ich kann nicht mit einer Datenbank-Tabelle.
Momentan habe ich es gemappt eine hash-map, aber ich möchte es nicht hart kodiert werden.Ich dachte über die Verwendung einer properties-Datei, aber ich kann nicht visualisieren, wie würde ich es implementieren.Sonst noch jemand eine Idee?
Nicht, dass es darauf ankommt, aber ich bin mit JAVA, weblogic 10.3.
Lösung
Ich würde für etwas gehen so einfach wie:
user1 = userValue
user1.system = systemValue
user1.system.subsystem= subsystemValue
user2 = userValue
user2.system = systemValue
user2.system.subsystem= subsystemValue
Benutzer (id) wird als „primäre“ Schlüssel in Ihren Eigenschaften und eine sehr einfache Verkettung Ihrer Felder verwendet, um Ihre Tabellenwerte zu speichern. Ich benutze dies sehr oft: glauben Sie mir, es ist viel mächtiger als es scheinen mag :)
Andere Tipps
Sie könnten dies tun, indem Sie eine HashMap (wie Sie es jetzt tun), und speichern Sie es mit XStream.
XStream können Sie serialise/deserialise Java-Objekte an/aus lesbar/editierbar XML.Sie können dann Schreibe dies, um (sagen wir) ein Dateisystem, und das Ergebnis ist editable durch hand.
Der Nachteil ist, dass es eine serialisieren in XML ein Java-Objekt, also nicht so unmittelbar erkennbar wie eine properties-Datei zu Bearbeiten.Aber es ist immer noch sehr gut lesbar und einfach zu verstehen, wenn jemand aus der Ferne technische.Ob dies eine geeignete Lösung hängt von der Zielgruppe dieser Datei.
Für dieses Projekt habe ich mit der Lösung von Olivier vorgeschlagen gegangen. Einige Projekt contrainst (Vermächtnis des Projekts) verhindern, mich mit einer wahrscheinlich bessere Lösung der Verwendung von XStream für gehen.
Thx für das Futter zurück Jungs