6

scalatra在幕后使用抑扬(反之亦然)?它们之间的主要区别是什么,您会使用哪一个?

这两个框架都受到Sinatra的启发,并且乍一看是相同的。

使用 scalatra 请求路由:

class ScalatraExample extends ScalatraServlet {

get("/date/:year/:month/:day") {
  <ul>
    <li>Year: {params("year")}</li>
    <li>Month: {params("month")}</li>
    <li>Day: {params("day")}</li>
  </ul>
}

抑扬顿挫的示例代码:

class Main extends RequestRouter {

get("/posts/:id") = "Post #" + uri("id")

}
}
4

1 回答 1

4

Scalatra 开发人员之一的 Ross A. Baker 最近评论了 Circu、flex 和 Scalatra 之间的区别:

它们表面上非常相似,尽管我认为每个都有其优点。以下是我看到的一些差异:

模板化:Scalatra 与 Scalate 集成,Circumflex 与 Freemarker 集成。

路由:Circumflex 为标题匹配提供了更好的糖,但 Scalatra 允许您匹配任意布尔值(即,用于站点维护的全局标志)

ORM:Circumflex 有一个,Scalatra 没有。我知道使用 Squeryl、Querulous、Scala-Query、ORMBroker 和 Circumflex-ORM 的 Scalatra 用户。这些集成是微不足道的,我认为使用 Circumflex 也是微不足道的。

Auth:Scalatra 在其最新快照中有一个 auth 模块,而 Circumflex 没有。

i18n:Circumflex 有消息包的糖,Scalatra 没有。

测试:Scalatra 还包含一个不错的 DSL 用于测试;我不知道 Circumflex 有什么类似的东西。

于 2010-11-01T09:17:38.190 回答