Play Framework 2.0 介绍

红薯 发布于 2012/03/14 11:06
阅读 13K+
收藏 39

【领华为电脑包】容器化时代到来!跳转机分配问题终于“有救”了!>>>

Play Framework 刚刚发布了 2.0 正式版,来看看 Play Framework 2.0 的新特性介绍吧。

原生支持 Java 和 Scala

Play Framework 1.x 完全是采用 Java 编写的,可通过插件来支持 Scala,而 2.0 版本已经完全内置对 Scala 的支持,而且 Play 也首推使用 Scala 开发应用,你可以同时使用 Scala 和 Java 来开发 Play 应用。


使用 Java 编写的控制器


使用 Scala 编写的控制器


快速引用开发

在 1.x 版本中,提供了 “Play feel” 基于控制台的应用发布和基于浏览器的错误报告,而 Play 2.0 大大的扩展了开发者执行代码片段、测试以及在运行应用上下文中执行 SHELL 脚本的能力


Pushing Type Safety to a New Level

受益于静态类型语言,编译器可单独对你的代码中的某一部分进行检查,这也就是为什么 Play 2.0 默认使用基于 Scala 模板引擎编写 Play 应用的原因。这并不是说你必须是精通 Scala 才能办到。但熟悉 Scala 对开发 Play 2.0 应用是很有好处的。

Play 2.0 在进行编译和类型检查更加的深入,Routes (用来定义 URL 和 action 的映射), 模板以及资源可直接编译 (使用 LESS, CoffeeScriptGoogle Closure compiler),提供了一个统一的开发流程,不管是客户端开发还是服务器端。其结果是更多的错误将在开发阶段暴露出来,加速开发的进程,在多人参与的大项目中也跟易于管理。


route 编译错误检测

玩得(Playing) 更爽Playing Nicely

Play 1.x 通过 Play 特有的运行环境来实现一些技术,例如 Java类属性以及类的热加载。在 Play 2.0 中我们采用更加标准的方法做运行时的发布,使得使用 Scala 编写核心框架并在 SBT 上构建变得可能。

Play 2.0 提供一个跟 Play 1.x 一样简单的 “play new, run, start” 体验,同时具有跟具可扩展性的基础框架。Play 2.0 提供一个预先配置的构建脚本,使得 1.x 的大多数项目无需修改就可以在 2.0 中运行。但如果你希望修改应用程序的构建和发布,你需要根据需要来定制适配器。


Pick and Choose

在最近几年,Web 应用技术发展非常迅速,Play 2.0 提供了一个很先进的架构可以让你非常灵活的进行功能定制。例如你不想使用数据库,那么你可以禁用 DBPlugin 插件;想使用你自己的模板引擎,没问题,用插件。你完全可以根据你的需要来决定 Play 提供的功能。


在 conf/application.conf 中禁用插件
 

透过 Akka 实现灵活的伸缩性
 
Play 基于一个轻量级、无状态、Web友好的架构,其特点就是可预测以及最小的资源消耗(包括 CPU、内存和线程),特别适合用来开发高可伸缩性的应用程序。这里部分要感谢 Akka 2.0。 Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。


在本例中,你可看到 Calculator actor 映射到 Play 的非阻塞方式


上面你可看到 ChatRoomActor 使用 Comet 发送消息

高级 I/O 和流处理
 
Web 开发一项非常重要的技术就是“推”和非堵塞技术。Play 2.0 使用一个 Iteratee IO 实现用于实现对“推”和非堵塞支持,以及使用内置的 WebSocket 和 Comet 来进行进行文件流处理。


一个 Scala 控制器使用了内置的 WebSockets 支持


Ready, Steady, Play!

你是否已经准备好了开始 Play 2.0 之旅呢?可以先看看 Play 2.0 提供的一些 示例程序 ,然后再做决定 :)

你还可以看看如何开始 Play 2.0 开发

Via typesafe   OSCHINA原创翻译
加载中
1
ericwo
ericwo

引用来自“李诺”的答案

如果想用Eclipse做开发IDE呢?
play eclipsify
0
_大李_
_大李_
如果想用Eclipse做开发IDE呢?
3602
3602
eclipsify
0
崔钢
崔钢
有时间,可以看看。
0
码农1573
码农1573
怎么把这玩意扔到tomcat下跑起来?
码农1573
码农1573
@红薯 : 2不行吧
红薯
红薯
@码农1573 : http://www.oschina.net/question/12_9698
码农1573
码农1573
@鉴客 : 2没找着是哪个命令
鉴客
鉴客
有个命令可以发布成 war 包,就可以在 tomcat 下运行
0
胖猫
胖猫
下次试试这东西
0
mj4738
mj4738

浏览了一下, 1.x 和2.x差别很大.

 

0
arden
arden
从2010年以来一直在用Play做开发,先后做了泡椒网,  土椒网tujiao.net,感觉非常不错,Play改变了程序对java开发web应用的看法,不再是那种只适合做企业应用的格局了。Play2.0看起来非常不错,希望日后土椒网能够用得上~
0
fir01
fir01
Scala太灵活,对开发者素质要求太高
0
Sephiroth
Sephiroth
2.0正式版终于出了,观望
0
玉良
玉良
一直在用1.X
返回顶部
顶部