标签: playframework

NodeJS vs Play Framework适用于大型项目

我真的在两个不同的堆栈之间撕裂,用于构建一个大型应用程序.一方面有这个选项:

  • Node.js的
    • 表达
    • 咖啡脚本
    • coffeekup
    • 猫鼬/ mongodb或
    • presistencejs/MySQL的


  • 使用Scala播放框架
    • Anorm w/mysql
    • 或mongodb

node.js路径对我很有吸引力,因为我可以在coffeescript中编写所有服务器端代码,视图和客户端代码,我已经知道了.如果我沿着这条路走下去,我仍然不能100%确定我会采取哪种数据库路径.mongoose使得存储数据变得快速而简单,但考虑到我想到的数据模型(非常SQLish),缺乏真正的关系可能更难以工作.

Play Framework路径也很有吸引力,因为我在使用Java时非常了解框架,但我对Scala知之甚少,因此在学习该语言的过程中会对生产力产生影响.Anorm数据库访问层很吸引人,因为我可以手工编写我喜欢的SQL,并将结果自动映射到对象,这样可以省去很多工作.

我一直倾向于node.js,但我并没有在最好的数据库访问层上出售.任何人都有任何经验,可以分享一些见解?

mongodb node.js coffeescript playframework anorm

55
推荐指数
2
解决办法
2万
查看次数

Play Framework 1.0和2.0之间的主要区别是什么?

随着最近发布的Play Framework 2.0,我想知道是否有人可以从高层次的角度总结Play Framework 1和2之间的主要区别.

我已经编译了一些(播放1.0 - >播放2.0):

  • 模板引擎:Groovy Pages - > Scala模板
  • 持久性:休眠 - > Ebean
  • 语言支持:Java - > Scala,Java
  • 动态编译:字节码注入 - >通过SBT进行动态编译
  • 构建系统:不适用 - > SBT
  • 可扩展性:模块,插件 - >子项目,插件,SBT插件

还有什么 ?阿卡?

playframework playframework-2.0

54
推荐指数
5
解决办法
1万
查看次数

在多个列上创建复合唯一约束

这是我的模特:

class User {...}
class Book {
  User author;
  int number;
}
Run Code Online (Sandbox Code Playgroud)

每个书籍编号从每位作者1开始,并向上递增.所以我们将获得John Grisham的书籍1,2,3,George Martin的书籍1 ...等等......

是否有一个我可以放置的独特约束Book,这可以保证我们没有同一作者的两本具有相同编号的书籍?类似@Column(unique = true),但约束只适用于复合Author X number

java persistence jpa playframework

54
推荐指数
2
解决办法
4万
查看次数

Play Framework 2.1 - 找不到隐式ExecutionContext

我打电话给这样的网络服务:

WS
  .url(url)
  .get
  .map { response => // error occurs on this line
    response.status match {
      case 200 => Right(response.json)
      case status => Left(s"Problem accessing api, status '$status'")
  }
}
Run Code Online (Sandbox Code Playgroud)

完整的错误: Error: Cannot find an implicit ExecutionContext, either require one yourself or import ExecutionContext.Implicits.global

scala playframework playframework-2.0

50
推荐指数
1
解决办法
2万
查看次数

-Ywarn-unused-import触发播放路由文件

我希望能够使用-Xfatal-warnings-Ywarn-unused-import,问题是,编译器是在其中包含了我的应用程序播放路由文件触发的错误:

[error] /path/to/app/conf/routes: Unused import
[error] /path/to/app/conf/routes: Unused import
[error] /path/to/app/conf/routes:1: Unused import
[error] GET        /document/:id        my.app.controllers.MyController.getById(id: Int)
Run Code Online (Sandbox Code Playgroud)

其他路线也一样.

有可能告诉scalac忽略文件吗?

Scala版本是2.11.8.

scala sbt scalac playframework

50
推荐指数
3
解决办法
1662
查看次数

为什么java等待这么长时间来运行垃圾收集器?

我正在使用Play构建一个Java Web应用程序!框架.我在playapps.net上托管它.在提供的内存消耗图表上,我一直困惑不已.这是一个示例:

堆内存

该图表来自一致但名义上的活动期.我没有做任何事情来触发内存的衰减,所以我认为这是因为垃圾收集器运行,因为它几乎达到了允许的内存消耗.

我的问题:

  • 它是公平的,我认为我的应用程序并不会有内存泄漏,因为它似乎是所有内存都被正确地被垃圾回收器回收它在运行时?
  • (从标题)为什么java等到最后一秒可能运行垃圾收集器?随着内存消耗增长到图表的前四分之一,我看到显着的性能下降.
  • 如果我的断言是正确的,那么我该如何解决这个问题?我在SO上读过的其他帖子似乎反对调用System.gc(),范围从中性("它只是运行GC的请求,所以JVM可能只是忽略你")完全反对("依赖的代码System.gc()从根本上被打破") .或者我不在这里,我应该在我自己的代码中寻找导致此行为和间歇性性能损失的缺陷?

更新
我已经在PlayApps.net上开启了一个关于这个问题的讨论,并在这里提到了一些观点; 特别是@Affe关于完整GC设置非常保守的评论,以及@ G_H关于初始和最大堆大小设置的评论.

这是讨论链接,但遗憾的是您需要一个playapps帐户才能查看.

当我得到它时,我会在这里报告反馈; 非常感谢大家的回答,我已经从中学到了很多东西!

解决方案
Playapps支持,这仍然很好,对我没有很多建议,他们唯一的想法是,如果我广泛使用缓存,这可能会使对象保持活动的时间超过需要,但事实并非如此.我还是学到了很多东西(呜呜!),我给了@Ryan Amos绿色支票,因为我提出了他System.gc()每半天打电话的建议,现在工作正常.

java memory memory-management playframework

49
推荐指数
3
解决办法
7284
查看次数

Web框架:Play与Spring MVC有何不同?

游戏框架提供了以下简要概述,但与Groovy的模板引擎(您可以在Spring MVC,如果你想获得)外,春天似乎提供了所有相同的功能和更多...

  • 修复错误并点击重新加载!编辑Java文件,保存,刷新浏览器并立即查看结果!无需编译,部署或重新启动服务器.Spring会这样做,这会让人讨厌.

  • 无状态模型 Play是一个真正的"无分享"系统.准备好REST,可以通过在多个服务器上运行同一应用程序的多个实例来轻松扩展.典型的Spring应用程序具有无状态应用程序层; 它不是纯粹的RESTful,除非你想成为,但是Spring已经"准备好了REST".

  • 高效模板系统基于Groovy作为表达式语言的干净模板系统.它提供模板继承,包含和标签.Spring使用Java,但Groovy也是一个选项.

  • 快速解决错误发生错误时,播放会显示源代码和包含问题的确切行.甚至在模板中.Spring也是如此.

  • 创建一个很酷的Web应用程序所需的一切提供与Hibernate,OpenID,Memcached ......以及插件系统的集成.Spring集成了一切甚至更多.

  • 使用Java的纯Java代码,使用任何Java库并使用您首选的IDE进行开发.与eclipse或netbeans很好地集成.Spring也是纯Java.

  • 真快速启动速度快,运行速度快!主观,但春天很快.

那么Play Framework实际上与Spring MVC有什么不同呢?
简而言之,Spring可以做什么Play框架不能(反之亦然)?

java spring-mvc playframework

48
推荐指数
1
解决办法
3万
查看次数

将Play JSON库添加到sbt

如何将Play JSON库(play.api.libs.json)添加到我的sbt项目中?

当我将以下内容添加到我的plugins.sbt文件中时:

addSbtPlugin("play" % "sbt-plugin" % "2.1.0")
Run Code Online (Sandbox Code Playgroud)

我遇到了这个错误:

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: play#sbt-plugin;2.1.0: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
Run Code Online (Sandbox Code Playgroud)

我没有找到这个库的解析器,否则我会添加它并运行sbt update.请注意,我resolvers包括http://repo.typesafe.com/typesafe/releases/.

sbt playframework playframework-2.1

45
推荐指数
3
解决办法
2万
查看次数

使用Play 2.2库实现密封特性的无噪声JSON格式

我需要以最少的仪式获得一个简单的JSON序列化解决方案.所以我很高兴找到即将推出的Play 2.2库.这与普通案例类完美匹配,例如

import play.api.libs.json._

sealed trait Foo
case class Bar(i: Int) extends Foo
case class Baz(f: Float) extends Foo

implicit val barFmt = Json.format[Bar]
implicit val bazFmt = Json.format[Baz]
Run Code Online (Sandbox Code Playgroud)

但是以下失败了:

implicit val fooFmt = Json.format[Foo]   // "No unapply function found"
Run Code Online (Sandbox Code Playgroud)

我如何设置所谓的缺失提取器Foo

或者你会推荐任何其他独立的库,或多或少全自动处理我的情况?我不关心是在编译时使用宏还是在运行时使用反射,只要它开箱即用即可.

json scala playframework

44
推荐指数
3
解决办法
1万
查看次数

Play 2.4:Form:找不到参数消息的隐含值:play.api.i18n.Messages

我是Play框架的新手并尝试在我的本地机器中模仿helloworld示例,但是我遇到了一个错误:

在此输入图像描述

路线:

# Home page
GET        /                    controllers.Application.index

# Hello action
GET        /hello               controllers.Application.sayHello


# Map static resources from the /public folder to the /assets URL path
GET        /assets/*file        controllers.Assets.versioned(path="/public", file: Asset)
Run Code Online (Sandbox Code Playgroud)

控制器:

package controllers

import play.api.mvc._
import play.api.data._
import play.api.data.Forms._

import views._

class Application extends Controller {

  val helloForm = Form(
    tuple(
      "name" -> nonEmptyText,
      "repeat" -> number(min = 1, max = 100),
      "color" -> optional(text)
    )
  )

  def index = Action {
    Ok(html.index(helloForm))
  }

  def sayHello …
Run Code Online (Sandbox Code Playgroud)

forms scala playframework playframework-2.4

44
推荐指数
2
解决办法
2万
查看次数