关于play的一些介绍

概述

Play 框架是一个完整的 Web 应用开发框架,覆盖了 Web 应用开发的各个方面。Play 框架在设计的时候借鉴了流行的 Ruby on Rails 和 Grails 等框架,又有自己独有的优势。使用 Play 框架可以方便和高效的开发出 Java Web 应用。通过 Play 框架提供的命令行工具,可以快速的创建出一个 Web 应用的基本骨架。它的 Java 代码动态编译机制,使得修改代码之后,不需要重启服务器就可以直接看到修改之后的结果,调试起来非常方便。它使用 JPA 规范来完成领域对象的持久化,可以很方便的使用不同的关系数据库作为后台存储。使用 Play 框架可以很容易的构建使用 REST 架构风格的应用。它使用 Groovy 作为视图层模板使用的表达式语言。模板之间的继承机制也可以避免代码的重复。总的来说,Play 框架非常适合快速 Web 应用开发。

Play 框架采用经典的 MVC 架构,把 Web 应用分成模型层、控制层和视图层三个层次。每个层次对应的文件被存放在不同的目录下面,方便组织和管理。使用 Play 框架的 Web 应用具有相同的目录结构,如 图 1 所示。


图 1. 使用 Play 框架的 Web 应用的目录结构
使用 Play 框架的 Web 应用的目录结构

图 1 所示,应用自身的文件被放在 app 目录下面,三个子目录分别存放的是 MVC 模式的三个层次的内容。其中 modelscontrollers 目录下面是 Java 源文件,而 views 目录下面则是视图层使用的模板文件。conf 目录下面存放的是应用的配置文件、HTTP 路由文件和国际化所需的消息文件。public 目录则是存放 Web 应用的静态文件,包括 JavaScript、CSS 和图像文件等。lib 目录存放所需的额外的 Java 库。test 目录存放的是测试结果。

开发环境

本文中使用的 Play 框架的版本是 1.0.3.1,使用的集成开发环境是 Eclipse 3.6, 使用 Dojo 作为 JavaScript 框架。在 Play 框架官方网站(见 参考资料 )下载 Play 框架的压缩包之后,解压到某个目录,并把该目录下面的 bin 目录添加到环境变量中。接着启动一个命令窗口,运行 play new developers_notebook 就可以创建出一个新的名为 developers_notebook 的 Web 项目。在项目目录的父目录下面,运行 play eclipsify developers_notebook 就可以创建出来 Eclipse 工程。通过 Eclipse 导入此工程就可以在 Eclipse 里面进行开发了。Play 框架的 support 目录下的 eclipse 目录下有个名为 org.playframework.playclipse 的 Eclipse 插件,将此插件复制到 Eclipse 的 plugins 目录就可以安装。运行 play run 就可以运行此 Web 应用,访问 http://localhost:9000 就可以看到。每次在 Eclipse 里面修改了代码之后,不需要重新启动应用,只需要刷新页面就能看到更新之后的结果。这是 Play 框架的一个非常方便的特性。

本文中的示例应用称为“开发人员记事本”。开发人员可以用它来记录开发过程中的一些注意事项。下面首先介绍 Play 框架中的模型层。

模型层

模型层包含的是 Web 应用中的领域对象。Play 框架推荐的实践是模型层的对象不应该是仅包含 getter/setter 方法的简单 Java Beans,而应该有自己的业务逻辑。Play 框架中应用的模型层类可以是任何的 Java 类。与一般的 Java Beans 不同的是,模型层类使用声明为 public 的域作为对象的属性。Play 框架会自动生成相应的 getter/setter 方法。这样可以使得代码更加简洁。开发人员也可以提供自己的 getter/setter 方法实现。

领域对象持久化

领域对象的实例一般需要持久化下来。最常见的持久化方式就是使用关系数据库。Play 框架使用 JPA 规范来进行领域对象的持久化。具体的后台实现使用的是 Hibernate。开发人员只需要使用 JPA 规范定义的标注,就可以声明领域的持久化行为。比较好的做法是将领域对象类继承自 Play 框架提供的 play.db.jpa.Model 类。play.db.jpa.Model 类提供了一个域 id 作为对象的标识符,也是对应的数据库表中的主键。play.db.jpa.JPASupport 类是 play.db.jpa.Model 的父类,提供了一些实用方法用来完成从领域对象到数据库之间的映射。表 1 中列出了一些重要的方法,包括常用的增删改查操作。


表 1. play.db.jpa.JPASupport API 说明

方法 说明
create(type, name, params) 用来创建领域对象类的一个实例。参数 type 表示的是领域对象类,类型是 java.lang.Classname 表示的是领域对象类的名称;params 表示的是一个包含了实例中属性值的类型为 java.util.Map<java.lang.String,java.lang.String[]> 的哈希表。
edit(obj, name, params) 用来编辑领域对象类的一个实例。参数 obj 表示的是领域对象实例;参数 nameparams 的含义与 cre
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值