我要开始为应在Tomcat服务器上运行的Web应用程序的项目。 我已经决定去斯卡拉 - 我的工作是Groovy中其他的选择 - 本质上是类型安全。 我现在面临选择合适的工具作业的任务。
我需要开发该项目将只能通过JSON API访问。 它将都与它自己的数据库,并与两个外部服务,分别暴露JSON和XML API进行交互。 我还需要能够调度定期工作在我的应用程序将执行与这些外部服务的各种同步任务。
对于数据库,我想能够定义我在斯卡拉模型并自动生成模式。 如有需要改变我的模型,我想有迁移来处理它。
对于这种应用,我想评估电梯,播放! 2 Scalatra的。
电梯是我的第一选择。 它是目前最成熟的三个项目,而且似乎被认为是高度安全的(我不希望在安全性妥协)。 此外,它的特点是什么似乎是在斯卡拉最好的JSON处理库。 不过,涉足了一下它之后,我不知道这将是正确的选择。 该文档是不完全是我见过的最好的。 此外,记录+ Squeryl在我看来,比映射了更好的抽象,但对于这个文件的使用更是稀少。 最后,虽然电梯肯定可以被用来创建一个Web服务,似乎它的真正实力在于状态处理,所以我不认为需要为我的项目的额外的复杂性。
玩! 2似乎有一个更好的文档,并期待我更熟悉的(我来自一个Django的背景)。 再次,它的默认数据库抽象并没有真正安抚我:ANORM依赖于SQL,不与类型检查帮助。 我无论如何都会使用Squeryl,我不知道该用例的文件是否为好。 此外,部署玩! 2个应用是目前MOER复杂得多,我想。 一个人必须安装播放! 在生产服务器上,我不知道这是我工作的一个选项。 否则,有一个插件,使其使用Servlet容器的工作,但它是非常新,我不知道它是如何稳定/可靠。
最后是使用了Scalatra的选项。 Scalatra的似乎很容易成立,它的设计正是以创建Web服务。 妥协是Scalatra的不提供太多的功能。 它不与现有奥姆斯整合或建议如何组织应用程序的模型部分,它不会在设计cron或命令行任务的帮助。 我也不能确定未来长期的项目。
你认为会是我的任务是最好的选择?