gpt4 book ai didi

scala - 选择 Scala Web 框架

转载 作者:行者123 更新时间:2023-12-03 07:20:56 24 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




9年前关闭。




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

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

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

对于此应用程序,我正在尝试评估 Lift, Play! 2 和 Scalatra。

  • 电梯是我的第一选择。它是三个项目中最成熟的,似乎被认为是高度安全的(我不想在安全性上妥协)。此外,它具有 Scala 中最好的 JSON 处理库。尽管如此,在稍微涉足之后,我不确定这是否是正确的选择。文档并不是我见过的最好的。此外,在我看来,Record + Squeryl 似乎是比 Mapper 更好的抽象,但这种用途的文档更加稀缺。最后,虽然 Lift 肯定可以用于创建 Web 服务,但它的真正优势似乎在于状态处理,因此我不相信我的项目需要额外的复杂性。
  • 玩! 2 似乎有更好的文档,对我来说看起来更熟悉(我来自 Django 背景)。同样,它的默认数据库抽象并没有真正让我满意:ANORM 依赖于 SQL,它对类型检查没有帮助。无论如何我都必须使用 Squeryl,我不确定这个用例的文档是否一样好。此外,部署 Play! 2 个应用程序目前比我想要的更复杂。必须安装 Play!在生产服务器上,我不确定这是我工作的一个选项。否则,有一个插件可以使其与 servlet 容器一起使用,但它是非常新的,我不确定它的稳定性/可靠性。
  • 最后还有使用 的选项Scalatra . Scalatra 似乎很容易设置,它的设计完全是为了创建 Web 服务。妥协是 Scalatra 没有提供太多功能。它不与现有的 ORM 集成或建议如何组织应用程序的模型部分,并且它对设计 cron 或命令行任务没有帮助。我也不确定该项目的长期 future 。

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

    最佳答案

    如果您来自 MVC 背景,那么 Play 会感觉最熟悉。 Lift 不是 MVC,需要一些时间来理解它。

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

    如果您正在考虑 Scalatra,请不要忘记 Spray , Unfiltered , BlueEyes ...

    请务必查看 Matt Raible 的 comprehensive comparison of web frameworks .还有这些其他问题:
    Scala framework for a Rest API Server? , How to implement a REST Web Service using Akka?

    关于scala - 选择 Scala Web 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11756269/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com