PLAY框架知识简介
轻量级的高性能Web框架:Play

Play是一款开源、轻量、无状态、Web友好的架构,使用Java语言编写并遵循MVC模式,集成了当今Web开发所需的组件和API。
此外Play可以给应用程序提供可预测的和最小的资源消耗(CPU,内存,线程),可构建高扩展的应用程序。
目前Play的最新版本是2.1,在该版本中需关注的几点是:移植到Scala 2.1上、Migration to scala.concurrent.Future库,可在Scala中管理异步代码、改进Iteratee API、在项目中可构建更多的模块化代码、为Java API提供更好的线程模型、新增Scala JSON API、Filter API和CSRF保护机制等。
除了上述所描述的这些特征外,最受开发者喜爱的又有哪些呢?不妨来看下:•快速迭代:修改代码、刷新页面立即就能看到•Java和Scala:JVM性能、类型安全、库、IDE/工具支持、活跃的社区•反应:非阻塞I0机制使数据/基于网络的实时数据获取更容易•灵活:支持可插、自定义配置和可定制。
既然Play拥有这么多功能,下面就提供一些示例给大家。
1.创建按照安装说明,创建一个叫play-tutorial的App,使用play new命令:2.运行Appcd到play-tutorial的根目录下,使用play run命令启动服务器,然后在浏览器中输入:http://localhost:9000这时,你可以在IDE里加载和查看play-tutorial源码。
Java培训:3.Hello WroldPlay遵循MVC模式,所以先在app/controllers下创建一个控制器:HelloWorld下面要做的是在浏览器上显示这个controller/action,你可以把这个添加到conf下的routes 文件下。
在浏览器中输入:http://localhost:9000/hello。
java培训-Play Framework介绍

Play Framework介绍:主要概念Play!是一个full-stack(全栈的)Java Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate的对象持续,一个基于Groovy的模板引擎,以及建立一个现代Web应用所需的所有东西。
本文翻译自Play官方文档。
原文见:/documentation/1.1.1/mainPlay Framework是一个Rails风格的Full-stack Java Web框架。
MVC模型Play应用遵循Web架构使用的MVC架构模式。
它将应用分离到不同的层中:表现层(Presentation)和模型层(Model)。
表现层进一步分为视图(View)和控制器(Controller)。
∙Model 是应用所处理信息的领域表述(Domain-Specific Representation)。
绝大多数应用使用持久化机制如数据库存储数据。
但是MVC并没有特别提到数据访问层,因为它属于下层,由模型封装。
∙View 将模型渲染成适合交互的表单,通常是用户界面。
一个模型可有多个不同目的视图。
Web应用中,View 通常以HTML,XML或JSON形式呈现,也可能是二进制的Chart。
∙Controller处理事件(通常是用户动作),并对模型做相应改变。
Web应用中,事件通常是HTTP请求:Controller 监听HTTP请求,从其中提取数据,如查询字符串参数,请求头,然后改变下层模型对象。
Play将此三层分在app目录下的不同package中。
app/controllers一个Controller就是一个Java 类,它的静态公共方法则是动作(Action)。
动作是接收HTTP请求后的Java处理入口点。
Controller类实际是面向过程的,非OO。
Action从HTTP请求中提取数据,读或更新Model对象,然后返回一个包装成HTTP响应(HTTP Response)的结果。
play框架plugin简单说明及例子

play1.2.4版本:继承类play.PlayPlugin,我们可以实现插件的功能。
play框架本身基于此类提供了一些已经实现的plugin,比如:ConfigurablePluginDisablingPlugin, CorePlugin, DBPlugin, Evolutions, JobsPlugin, JPAPlugin, MessagesPlugin, TempFilePlugin, ValidationPlugin, WS这其中有我们非常熟悉的JobsPlugin,实现一些定时JOB,onApplicationStart() 和onApplicationStop() 在服务启动停止时实现一些我们自己的业务。
onApplicationStart() 和onApplicationStop() 都是PlayPlugin类的方法,当然还有很多其它方法,你只需要继承类并重写这些方法就可以实现自己需要的插件。
打开play-1.2.4.jar包,在根目录下,我们可以看到文件play.plugins,这里面列出了所有play 已经实现的插件,该文件中列出的插件类在play启动时加载。
打开看看内容:0:play.CorePlugin100:play.data.parsing.TempFilePlugin200:play.data.validation.ValidationPlugin300:play.db.DBPlugin400:play.db.jpa.JPAPlugin450:play.db.Evolutions500:play.i18n.MessagesPlugin600:play.libs.WS700:play.jobs.JobsPlugin100000:play.plugins.ConfigurablePluginDisablingPlugin每个插件类一行,第一列的数字为编号。
所以,我们要实现自己的插件并应用,必须也新加一个play.plugins文件(名称必须为play.plugins,在play jar中写死了,否则无法加载),存放在app目录下。
play框架手册-01.Play框架最主要的概念

01.Play框架最主要的概念MVC应用程序模型Play框架完全遵循MVC模式,MVC模式把应用程序分成几个独立的层:presentation表现层和model模型层,表现层进一步分成view呈现层和controller控制层。
∙Model层是应用程序操作的特定领域展现的信息。
领域逻辑把“领域的意思”添加到原始数据里。
许多应用程序使用持久存储机制,比如数据库来存储数据。
MVC不特别指明数据访问层,因为mvc模型能够理解底层操作,或数据访问层已经被模型进行了封装。
∙View层把model层渲染到一个适当的交互窗体,如典型的用户接口。
一个model可以有多个views,以实现不同的作用。
在一个web应用程序里,view通用渲染成web格式的内容,比如HTML, XML或JSON。
然而,在某些情况下,view也可表示成二进制窗体,比如一个动态渲染的图表。
∙Controller负责响应事件 (通常是用户actions),并对这些事件进行处理,也可能是调用model的修改方法。
在一个Web应用程序里,事件特指http请求:一个专门用于监听http请求的控制器,它从’事件’里提取相关数据,比如查询字符串参数,请求headers… 并把修改结果更新到底层model对象。
在Play应用程序里,这三个层被分别定义到app目录下的三个java包里。
app/controllers控制器就是一个java类,其中的每个public/static方法都是一个Action。
一个action就是一个java入口点,当接收到一个http请求时,这个action就会被调用。
控制器类里的java代码并不真正的面向对象的。
Action方法从http 请求中提取相关的数据,读取或更新model对象,并向http请求者返回一个封装好的response结果。
app/models领域模型对象层(以下简称model)是一系列完全使用java面向对象语言特征的java类,它包含了数据结构和数据操作。
【翻译】Play框架入门教程一:建立项目

【翻译】Play框架入门教程一:建立项目简介在这个教程中你会学到用Play框架从头到尾的开发一个真切的Web程序。
在这个程序中,我们将用法在一个真切项目中需要的全部技术,来介绍Play框架开发Web程序的实战技巧。
这个教程分为几个自立的部分。
每个部分将介绍更多复杂的特性,并且提供真切项目的需求,包括数据验证、错误处理、权限框架、自动测试框架、Web界面接口、国际化等内容。
项目我们打算创建一个blog项目。
这不是一个有想象力的打算,但是这个项目能让我们学习到目前Web程序大多数的功能性需求。
为了更好玩点,我们要处理不同角色的用户(itor,admin)。
这个项目的名字称为yabe。
这个教程的源代码在Play安装名目下的samples-and-tests/yabe/名目。
先决条件首先,确保计算机安装了Java,Play框架需要Java 5或以上版本。
还有我们要用法行,最好用法类Unix操作系统。
固然假如你用法Windows操作系统,Play框架也会工作得很好。
要有Java和Web开发技术(比如:HTML, CSS and JavaScript)的学问,然而不必深化了解JEE的学问。
Play框架是一个全栈式 Java框架,提供和封装了你所需要的全部Java API,你不必知道怎样配置JPA实体或者部署JEE组件。
固然还需要文本编辑器。
假如你习惯用诸如Eclipse和NetBeans等Java IDE开发Play框架的Web程序是十分好的。
然而用法一些诸如Ttmate、Emacs或VI简便的文本编辑器来开发Play框架的Web程序也是十分开心的。
安装Play 框架安装十分容易,下载最近的版本然后到任何路径。
假如用法Windows,应避开在安装路径中有空格。
比如c:\play ,而不能是c:\Documents And Settings\user\play。
最好是把Play主名目加入到工作路径path,这样只需要在指令行输入play就可以用法Play框架的功能了。
play框架手册-03.控制器

03.控制器在Play框架中,商业逻辑在domain model层里进行管理,Web客户端不能直接调用这些代码,domain对象的功能作为URI资源暴露出来。
客户端使用HTTP协议提供的统一API来暗中操作这些底层的商业逻辑实现资源的维护。
然而,这些domain对象到资源的映射并不是双向注入的:它可以表示成不同级别的粒度,一些资源可能是虚拟的,某些资源的别名或许已经定义了…这正是控制器层发挥的作用:它在模型对象和传输层事件之间提供了粘合代码。
和模型层一样,控制器也是纯java书写的代码,这样控制器层就很容易访问和修改model对象。
和http接口类似,控制器是一个面向Request/Response的程序。
控制器层减少了http和模型层之间的阻抗。
注意!不同的策略具有不同的架构模型。
一些协议可以让你直接访问模型对象。
典型代表就是EJB和Corba协议,这种架构风格使用的是RPC(远程过程调用),这样的通信风格和web架构很难兼容。
SOAP协议则试着通过web访问model对象。
这是另外一个rpc类型的协议,这种情况,soap使用http作为传输协议,这不是一种应用程序协议。
由于web规则并不是完全面向对象的,所以在这些协议下,针对不同的语言,需要不同的http适配器。
控制器概览一个controller就是一个java类,位于controller包下,是play.mvc.Controller的一个子类。
示例:package controllers;import models.Client;import play.mvc.Controller;public class Clients extends Controller {public static void show(Long id) {Client client = Client.findById(id);render(client);}public static void delete(Long id) {Client client = Client.findById(id);client.delete();}}控制器中的每个public、static方法叫做Action(动作)。
Play框架文档

优势:1.动态编译。
无论你修改Entity,Controller或者view,都无需重启服务器.2.视图采用了Groovy作为模板引擎,让表示层真正做到了开发高效简洁Play的页面模版有一套非常简单易用的tag机制,复用view非常的方便.3.测试Play可以方便的组织测试数据,而这些数据是一个文本结构,不依赖于特定数据库.也就是说即使你用的是一个内存数据库,你也可以很方便的组织测试数据.4.Play的"缺陷和问题":Play有很多的静态方法,在Controller和Model中都有,静态方法带来的最大麻烦就是难以继承,这是很恶心的一件事情,这一点可能是Play框架的一个硬伤,不知道以后会不会有更正.5.拥有精确的错误定位机制,当错误发生的时候,可以精确的定位到错误代码的位置。
6.速度很快,启动快,运行的速度也十分快部署1.首先下载Play2.解压到D盘3.配置环境变量PATH。
D:\play;4.打开CMD 运行play表示成功.测试1.创建一个工程打开DOS。
输入play new webplay意思是创建一个名字叫webplay 的工程。
但是该工程暂时无法导入ECLIPSE 2. 测试过工程是否成功打开DOS 输入play run webplay意思是测试工程是否运行成功。
下面会提示测试路径。
表示启动成功.3.创建Eclipse 部署文件运行play eclipsify webplay意思是创建eclipse 部署文件4.工程导入到Eclipse跟普通项目导入一样模板1.创建模板2.引用模板应用1.初始化执行方法:初始化执行方法为:具体类执行完index() 方法后,会去找顺序为:views-→action名字-→方法名字.html2.页面调用ACTION 的方法根据上面的提示。
在中找到方法.3.附带参数返回页面配置数据库1.配置数据库连接打开。
找到操作数据库每一个实体类都继承了 Model 类。
Play Framework2

创建和发布 Play 应用
app |- controllers |- models |- views conf |- application.conf |- routes public |- stylesheets |- javascripts |- images project |- build.properties |- plugins.sbt |- Build.scala lib logs |-application.log target test
public static Result index() { return ok("Got request " + request() + "!"); }
开发Java应用
Controllers 控制类
继承 play.mvc.Controller 的类,都是控制类。 它是 Action 的集合。
package controllers; import play.*; import play.mvc.*; public class Application extends Controller { public static Result index() { return ok("It works!"); } }
fork-join-executor { parallelism-min = 8 parallelism-max = 64 }}}}} //最小值 //最大值 parallelism-factor = 3.0 //每次增加(processors * factor)
Play 框架的配置文件
配置日志:
Play Framework
RESTful的全栈式Web开发框架
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(V)。
M:指业务模型 V:用户界面 C:控制器
PLAY的下载使用 下载play1.2.5包
从官网上下载play1.2.5版本,解压后将文件放在任意存储盘下,文件夹 中含有play的主包和play提供第三方的jar包,新建play项目时需要引入 jar包
4
安装与配置
Play无需安装,需要在环境变量path中配置,将play的存放路径复制到y框架的增删改查用法
1、新增 Luser user = new Luser(); = params. get(“name"); user.save(); 2、修改 Luser user = Luser.findById(userid); If(user!=null){ = params. get(“name"); user.save(); } 3、删除 Luser lu = Luser.find("id = ? ", userid).first(); lu.delete(); 4、查询 List<Luser> userlist = Luser.findAll();--查询全部
Play框架的增删改查用法
5、查询单个对象 Luser user = Luser.findByld(userid); 或
Luser user = Luser.find (“userid=?”,userid).first();
6、条件查询 List<Luser> userlist = Luser.find(“unid= ?”,unid).fetch(); List<Luser> userlist = Luser.find(“unid= ?”,unid).fetch(10); List<Luser> userlist = Luser.find(“unid= ?”,unid).fetch(page,length); Page表示当前页数,从1开始;length表示每页的记录数
新建play项目
在命令窗口中,输入play new 项目名称 单击回车键,确定项目名称在 单击回车键,项目成功建立。在项目的父目录下运行play eclipsify +项 目名称命令后,可以将新建的项目导入到myeclipse中 App,config,public,lib,test
Play项目包含的文件内容
Play框架使用总结
编译及运行
框架自动编译和重新 装载源文件的任何改 变 注意:新建的类或 model表需要重新运 行项目
报错
发生异常,此框架会 直接显示错误代码, 甚至是模板代码
项目打包部署
app,config,public, lib,需要删除.svn文件 夹
PLAY框架知识简介
2016-12-15
目录页
CONTENTS
目录
1
2 3
主要概念 标准目录结构 Play的下载使用
4 5 6
代码书写规范 项目的运行 项目的总结
Play框架主要概念
MVC设计模式
Play框架采用了良好的MVC设计模式,这个模式把应用层分为三层:模型层(M),控制层(C)和表示层
Play构建web应用的配置
在application.conf 文件中设置项目名称、访问的端口号、连接的数据库信息等
Play构建web应用的配置
在application.conf 文件中设置项目名称、访问的端口号、连接的数据库信息等
Web应用的路径配置
在routes 文件中设置项目访问首页
访问localhost:9004的时候就会指向application类中的index方法
App:放置了java文件controller,models,views 分别存放mvc模式的三层代码。 Conf:配置文件,设置连接数据库信息、访问端口号以及系统访问首页 Public:存放css样式、js文件以及图片信息 Lib: jar包 Eclipse:选中项目名称.launch右键选择run as 后单击项目名称运行项目
Model表的创建
Name=“luser”,schema=“ygjk” luser是数据库中的表名,ygjk是数据库名,使用@Table用来设定数据库表名@Column用来设置字 段名及长度@transient表示该字段是临时字段,不会显示在表中
创建java方法
render("Application/login.html", page, page1);