Java 在属性文件中映射数据

Java 在属性文件中映射数据,java,data-structures,properties,Java,Data Structures,Properties,我有以下数据: User System SubSystem user1 System1 SubSystem1 user2 System1 SubSystem2 user3 N/A N/A 我需要能够从用户那里确定系统/子系统元组。我必须能够随时添加用户,而无需重建和重新部署系统 我知道数据库是这里最好的选择,但我不能使用数据库表。 我目前使用哈希映射对其进行映射,但我不希望对其进行硬编码。我在考虑使用一个属性文件,但我无法想象我将如何实现它。还有人有什么建议

我有以下数据:

User   System    SubSystem
user1  System1   SubSystem1
user2  System1   SubSystem2
user3  N/A       N/A
我需要能够从用户那里确定系统/子系统元组。我必须能够随时添加用户,而无需重建和重新部署系统

我知道数据库是这里最好的选择,但我不能使用数据库表。

我目前使用哈希映射对其进行映射,但我不希望对其进行硬编码。我在考虑使用一个属性文件,但我无法想象我将如何实现它。还有人有什么建议吗


这并不重要,但我在weblogic 10.3上使用JAVA。

您可以使用HashMap(就像您现在所做的那样)来实现这一点,并使用存储

XStream允许您在可读/可编辑的XML中序列化/反序列化Java对象。然后,您可以将其写入(比如)文件系统,结果可以手动编辑


缺点是它是Java对象在XML中的序列化,因此不像要编辑的属性文件那样明显。然而,它仍然非常可读,任何远程技术人员都很容易理解。这是否是一个合适的解决方案取决于此文件的受众。

您可以使用HashMap(就像您现在所做的那样)来实现这一点,并使用存储

XStream允许您在可读/可编辑的XML中序列化/反序列化Java对象。然后,您可以将其写入(比如)文件系统,结果可以手动编辑


缺点是它是Java对象在XML中的序列化,因此不像要编辑的属性文件那样明显。然而,它仍然非常可读,任何远程技术人员都很容易理解。这是否是一个合适的解决方案取决于此文件的读者。

我会选择以下简单的解决方案:

user1 = userValue
user1.system = systemValue
user1.system.subsystem= subsystemValue
user2 = userValue
user2.system = systemValue
user2.system.subsystem= subsystemValue
用户(id)被用作属性中的“主键”,是一个非常简单的字段串联,用于存储表值。
我经常使用这句话:相信我,它比表面上看起来强大得多:)

我会选择一些简单的东西,比如:

user1 = userValue
user1.system = systemValue
user1.system.subsystem= subsystemValue
user2 = userValue
user2.system = systemValue
user2.system.subsystem= subsystemValue
用户(id)被用作属性中的“主键”,是一个非常简单的字段串联,用于存储表值。
我经常使用它:相信我,它的功能比表面上看起来要强大得多:)

对于这个项目,我采用了Olivier提出的解决方案。一些项目冲突(项目遗留问题)阻碍了我使用可能更好的XStream解决方案


Thx对于反馈人

对于这个项目,我赞同Olivier提出的解决方案。一些项目冲突(项目遗留问题)阻碍了我使用可能更好的XStream解决方案


反馈人的Thx

听起来像是你可以很好地使用的东西。

看起来是一个可行的Java实现。

听起来像是可以很好地用于..

看起来是一个可行的Java实现。

是否将其存储在fylesystem中?结果是否可以手动编辑?是。为了澄清,上面编辑了您刚才给了我一个未来项目的解决方案;)+1好极了!很高兴为您提供帮助将其存储在fylesystem中?结果是否可以手动编辑?是。为了澄清,上面编辑了您刚才给了我一个未来项目的解决方案;)+1好极了!很高兴能为您提供帮助我正在考虑这方面的解决方案,只是做了一些小改动,以确保属性不会进入其他域,这可能是我将要采用的方式。Log4J也做了类似的事情我正在考虑这方面的解决方案,通过一些小的更改,以确保属性不会进入其他域,这可能是我将要采用的方式