我正在用Play编写一个小型个人文件服务器!这是我的第一个Web应用程序。存储用户可以通过首选项面板修改的首选项的建议做法是什么。
我的第一个想法是在conf
目录中使用属性文件,但我必须能够在运行时修改它。 conf
目录是否可写,无论部署选项如何?
是否有内置选项或是否有更好的方法?
答案 0 :(得分:2)
通常的解决方案是将设置存储在数据库中。有没有理由不使用数据库?
答案 1 :(得分:2)
正如Kim Stebel所说,通常的解决方案是使用您已经拥有的应用程序,这在大多数情况下是数据库引擎,无论是否为关系。这是因为大多数时候,用户偏好来自其他一些已经存在的数据。
但在您的情况下,似乎文件系统是您的持久性引擎,并且您似乎不需要事务或对所讨论的功能具有过高的读/写性能,因此我将保持该部分最简单,直到需要一些其他的持久性引擎:我只是将用户首选项对象序列化为某种文本格式(JSON或XML出现在脑海中)并将它们保存在文件系统中:现在没有映射地狱,没有过早的选择(甚至可能会破坏^ W使用您喜欢的文本编辑器直接在服务器上编辑您的用户首选项,是的;是的;)
话虽如此,在Scala或Java生态系统中,有大量优秀的工作框架。
对于XML映射,我不是Scala本机库的最佳选择。使用它可以很容易地生成XML结构,但是从XML到Scala对象的映射最好是可怕的。 XStream(http://x-stream.github.io/)非常适合,但你必须使用Java集合,或者添加你自己的(这不是我对“最简单”的想法)。
对于JSON映射,Scala中有几个非常好的库。谷歌和其他stackoverflowers可能有更多细节,但我知道至少有这两个:
希望它有所帮助,