首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择Scala web框架

选择Scala web框架
EN

Stack Overflow用户
提问于 2012-08-01 09:22:00
回答 2查看 19.1K关注 0票数 40

我即将为一个应该在Tomcat服务器上运行的web应用程序启动一个项目。我决定选择Scala --我使用Groovy的另一种选择--本质上是为了类型安全。我现在面临的任务是为这项工作选择合适的工具。

我需要开发的项目只能通过JSON访问。它将与自己的数据库和两个分别公开JSON和XML的外部服务进行交互。我还需要能够安排定期作业,在其中我的应用程序将使用这些外部服务执行各种同步任务。

对于数据库,我希望能够在Scala中定义模型并自动生成模式。如果需要改变我的模型,我希望有迁移来处理它。

对于这个应用程序,我试图评估Lift,Play!2和Scalatra。

  • Lift是我的第一选择。它是这三个项目中最成熟的一个,似乎被认为是高度安全的(我不想在安全性问题上妥协)。此外,它还提供了Scala中最好的JSON处理库。尽管如此,在尝试了一下之后,我还是不确定这是否是正确的选择。这些文件并不是我所见过的最好的。此外,在我看来,Record + Squeryl比Mapper抽象得更好,但用于此用途的文档更为稀少。最后,尽管Lift当然可以用于创建web服务,但它的真正优势似乎在于状态处理,因此我不认为我的项目需要额外的复杂性。
  • Play!2似乎有更好的文档,而且在我看来更熟悉(我来自Django背景)。同样,它的默认数据库抽象并不能真正让我感到满意: ANORM依赖于SQL,这无助于类型检查。无论如何,我将不得不使用Squeryl,并且我不确定这个用例的文档是否一样好。此外,部署Play!2应用程序目前比我想的要复杂得多。一个必须安装播放!在生产服务器上,我不确定这是我工作的一个选项。否则,就会有一个插件来使它与servlet容器一起工作,但是它是非常新的,我不知道它有多稳定/可靠。
  • 最后,还有使用Scalatra的选项。Scalatra看起来非常容易设置,而且它的设计正是为了创建web服务。妥协之处在于Scalatra没有提供太多的功能。它不与现有的or集成,也不建议如何组织应用程序的模型部分,也无助于设计cron或命令行任务。我也不确定该项目的长期前景。

你认为什么是我任务的最佳选择?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-01 12:30:58

如果你来自MVC背景,那么播放会让你感觉最熟悉。Lift不是MVC,它需要一些时间来围绕它。

您没有理由不能将Scala与基于Java的框架一起使用,比如泽西、Spring、Dropwizard、Restlet、RESTEasy等等,或者您可以在Grails中使用Scala,就像在Grails中使用Java一样。注- Groovy从2.0版本开始具有类型安全性,因此需要考虑这一点。

如果你在想斯卡特拉,别忘了喷淋未过滤BlueEyes.

一定要看看马特·莱布尔的web框架的综合比较。还有其他的问题:Rest服务器的Scala框架?如何使用Akka实现REST Web服务?

票数 25
EN

Stack Overflow用户

发布于 2012-08-01 09:27:00

虽然您已经给出了一些候选人,但我还是推荐Tim (“Lift in Action”一书的作者),他比较了scala:http://skillsmatter.com/podcast/scala/scalable-language-web

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11756269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档