我目前正在开发一个软件,用户可以将复杂的对象层次结构定义为设置。此外,此设置对象将为其他开发人员提供接口作为API。现在我想存储这些设置并重新加载它。
我目前正在考虑不同的方法来做到这一点,但在我看来,我的解决方案中没有一个是“好的”。
的主要目标应该是:
我知道你们中的许多人在发展过程中都面临着同样或类似的问题。
,那么你的解决方案是什么?您使用了哪个框架,为什么使用?
我想出的所有解决方案要么不依赖,要么配置庞大,要么需要大量代码。
所以我期待着从你们大家那里得到一些关于这个话题的好的新观点。
谢谢。
发布于 2015-07-30 06:28:10
关于我现在如何解决这个问题的进一步信息:
我使用Gson将对象层次结构序列化为JSON。向它添加了一个通用TypeAdapter,用于序列化和反序列化所有已知接口。此适配器将类名保存到JSON对象中,并在反序列化过程中构造该类。除了为每个使用的接口注册这个TypeAdapter之外,不需要额外的配置。
为了使其可靠,我将向项目添加一个单元测试,它将反序列化完整的可能配置。因此,对代码的任何更改都会破坏测试。
通过这种方式,我可以完成上述所有要点。
希望这对任何人都有帮助。
发布于 2015-07-24 03:20:04
我建议指定一个XSD,并使用JAXB生成Java类以及基于XML的封送和反封送处理设置文件。
确保根标记包含XSD的版本。如果需要支持多个版本,可以使用StAX先读取版本,并确定JAXB类的正确版本。
发布于 2015-07-24 03:29:40
我推荐XStream。没有任何配置,它具有类似于java.io.*ObjectStream
的功能,但是输出XML而不是二进制blob。您只需要为类名添加几个别名,以提高文件的可读性。
https://stackoverflow.com/questions/31609084
复制相似问题