Play Framework 2.0 介绍

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

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

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原创翻译
加载中
0
Aeolus
Aeolus
一直用Grails,感觉两者都在解决相同的问题。
0
大东哥
大东哥

play2的一个比较舒服的功能是,controllers与models的打包,不再限制。

打包,模块化更舒心。

但view模版用了scala反而没有groovy模块简洁了。

0
hulei
hulei
Play2.0终于出来了,我最讨厌的控制器static依然存在!

没有细致的研究过play控制器的机制,play的控制器为static在大并发下是否会出现冲突?
假如在同一时间2个访问触发了static的同一控制器,其中有1个访问得到的可能是另一个的处理结果。
大东哥
大东哥
不会。
0
DavidY
DavidY
2.0的有start命令,遗憾的是没有stop和restart命令,这点稍麻烦
0
DavidY
DavidY
play2.0中使用eclipse java开发,有些错误代码的提示不好
0
steel
steel
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
javadeveloper
javadeveloper
看上去感觉差异很大,稍后研究研究。
0
戴锋伟
戴锋伟

最近用了几个月 1.2.4的play。 感觉很好用,开发效率很高。

2.0的还没看,不过现在正在学习scalazhong

0
ForEleven
ForEleven

这个是什么IDE?看上去比较舒服。一直对 Scala 和 Play 都比较感兴趣,准备开始搞起

微笑的书生
微笑的书生
回复 @答复哈 : 超爱ST2!
答复哈
答复哈
sublime text 2
0
jarorwar
jarorwar

play 1搞过一段时间,还不错。

play2 没搞过。。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部