play framework

来源:互联网 发布:淘宝sns是什么 编辑:程序博客网 时间:2024/04/28 08:52

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.      启动


4.      访问http://localhost:9000

5.      把应用转换为eclipse项目


6.      目录结构


app 目录包含如控制器(controller) 、视图 (view) 和模型 (model) 的应用程序特定代码。控制器包中有响应URL路由的Java代码,视图目录包含服务器端模板,模型目录包含应用程序的域模型。在此应用中,域 (domain) 是一个Story类。

conf 目录包含应用程序配置和路由定义文件。

project 目录包含构建脚本,构建系统是基于SBT的。

public 包含了如CSS、JavaScript和img目录等的公共资源。

test 目录包含应用测试。

7.      理解http://localhost:9000

请求方式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的语法表达能力更强,抽象程度高,简洁。对于程序人员来讲,这些都是我们所需要的。简洁和高效的表达能力可以让代码阅读变得快乐,并且更容易理解作者的意图。

0 0
原创粉丝点击