加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 推荐用于存储应用程序瞬态配置的实践

发布时间:2020-12-14 19:16:42 所属栏目:Java 来源:网络整理
导读:我正在用Play编写一个小型的个人文件服务器!这是我的第一个Web应用程序.存储用户可以通过首选项面板修改的首选项的建议做法是什么. 我的第一个想法是在conf目录中使用属性文件,但我必须能够在运行时修改它. conf目录是否可写,无论部署选项如何? 是否有内置

我正在用Play编写一个小型的个人文件服务器!这是我的第一个Web应用程序.存储用户可以通过首选项面板修改的首选项的建议做法是什么.

我的第一个想法是在conf目录中使用属性文件,但我必须能够在运行时修改它. conf目录是否可写,无论部署选项如何?

是否有内置选项或是否有更好的方法?

最佳答案
正如Kim Stebel所说,通常的解决方案是使用您已经拥有的应用程序,这在大多数情况下是数据库引擎,无论是否为关系.这是因为大多数时候,用户偏好来自其他一些已经存在的数据.

但在您的情况下,似乎文件系统是您的持久性引擎,并且您似乎不需要事务或对所讨论的功能的过度良好的读/写性能,所以我会保持该部分最简单,直到其他一些持久性需要引擎:我只是将用户首选项对象序列化为某种文本格式(JSON或XML出现在脑海中)并将它们保存在文件系统中:现在没有映射地狱,没有过早的选择(甚至可能会破坏^ W编辑你的用你喜欢的文本编辑器的用户偏好,直接在服务器上,是的;)

话虽这么说,在Scala或Java生态系统中,有很多很好的框架可以完成这项工作.

对于XML映射,我不是Scala本机库的最佳选择.使用它可以很容易地生成XML结构,但是从XML到Scala对象的映射最好是可怕的.
XStream(http://x-stream.github.io/)非常适合,但你必须使用Java集合,或者添加你自己的(这不是我对’最简单’的看法).

对于JSON映射,Scala中有几个非常好的库.谷歌和其他stackoverflowers可能有更多细节,但我知道至少有这两个:

> Lift-JSON(https://github.com/lift/lift/tree/master/framework/lift-base/lift-json/) – 我使用了那个,即使API看起来有时候对我来说很奇怪而且文档有点太亮了,对case case的自动反序列化真的很酷;
据报道Jerkson(https://github.com/codahale/jerkson)非常简单和善良

希望能帮助到你,

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读