Play Framework
什么是Play框架?
Play是一个开源的现代web框架,用于编写Java和Scala的可扩展Web应用程序。它通过自动重载变化来提高生产力,由于设计的就是一个无状态、无阻塞的架构,所以用Play框架来编写横向扩展Web应用程序是很容易的。
为什么要用它?
1. 无需编译,在用Play框架时,你更改一处刷新一下页面,更新会立即出现,而且它支持热重载所有的Java代码、模板等,可以让你的迭代快很多。
2. 天性使然:Play框架是建立在Netty之上的,所以它支持非阻塞I/O,这使得并行远程调用容易了很多,这一点对面向服务的架构中的高性能应用程序是很重要的。
3. 支持Java和Scala:Play框架是一个真正的多语种Web框架,开发者可以在项目中同时使用Java和Scala。
4. 一流的REST JSON支持:它很容易编写基于REST的应用。对HTTP路由有很好的支持,HTTP路由会将HTTP请求转化为具体动作;JSON编组/解组API是目前的核心API,所以没有必要加一个库来做到这一点。
开发Play应用
1. 请参阅文档以了解如何安装Play框架,开始应用程序的开发吧。
2. 新建play项目
3. 启动
5. 把应用转换为eclipse项目
6. 目录结构
app 目录包含如控制器(controller) 、视图 (view) 和模型 (model) 的应用程序特定代码。控制器包中有响应URL路由的Java代码,视图目录包含服务器端模板,模型目录包含应用程序的域模型。在此应用中,域 (domain) 是一个Story类。
conf 目录包含应用程序配置和路由定义文件。
project 目录包含构建脚本,构建系统是基于SBT的。
public 包含了如CSS、JavaScript和img目录等的公共资源。
test 目录包含应用测试。
请求方式get 路径/
根据Routes中配置
访问到Application.java中的index方法
返回到views/Application/index.html
8. 配置数据库
打开application.conf
db.default=mysql://root:1@localhost/tctest
你可以使用 play framework 做5件很爽的事情
1.使用PLAY可以很简单的从JAVA代码中检索HTTP参数。只要把方法参数申明成和HTTP参数相同既可。
智能绑定对任何的类都有效。
如:
Java代码:
Publicstatic void add(Person p){}
Html代码:
<from action=”” method=””>
<input type=”text” name=”p.name”/>
<input type=”text” name=”p.age”/>
</from>
2. 重定向到一个action调用相应的Java方法。
Play框架的forward并不等同Servlet中的forward,它有自己的forward,并且重定向到另一个ACTION非常的简单。只需要调用相应的JAVA方法,PLAY框架就会生成正确的HTTP “Redirect” response。
如:
Public static void show(Long id){}
Public static void edit(Long id,String title){
…
show(id);
}
3. 当传递JAVA对象到模板时,你不需要重复赋值
4. 更高效的JPA
在PLAY框架中使用JPA是非常简单的,无需要任何配置,当代码加载时,PLAY框架会使用HIBERNATE自动开启JPA Entity Manager并且神奇的使它同步。
此外,如果你使用play.db.jpa.Model超类,将有助于使你的代码更漂亮。
5. 简单的文件上传管理
如:
Html代码:
<form action=”” method=””enctype=” multipart/form-data”>
<inputtype="text" name="title" />
<inputtype="file" id="photo" name="photo" />
<inputtype="submit" value="Send it..." />
</form>
Java代码:
public static void uploadPhoto(Stringtitle, File photo) {
…
}
转折
play 2.0以后的版本抛弃了1.0结构和成果,采用了scala语言。如果从语法上来说,scala是比较复杂的,学习也比较困难,完全不适合初学者,文档也很少。和java相比较,scala的语法表达能力更强,抽象程度高,简洁。对于程序人员来讲,这些都是我们所需要的。简洁和高效的表达能力可以让代码阅读变得快乐,并且更容易理解作者的意图。