Java开发框架Play框架快速入门

简介:

Play 框架是一个完整的 Web 应用开发框架,覆盖了 Web 应用开发的各个方面。它借鉴了流行的 Ruby on Rails 和 Grails 等框架,又有自己独有的优势。具体表现在以下几个方面:其一,通过 Play 框架提供的命令行工具,可以快速创建Java Web 应用。其二,它拥有Java 代码动态编译机制,在修改代码之后,不需要重启服务器就可以直接看到修改之后的结果。其三,它还使用 JPA 规范来完成领域对象的持久化,可以很方便的使用不同的关系数据库作为后台存储。其四,它使用 Groovy 作为视图层模板使用的表达式语言。模板之间的继承机制避免了重复的代码。总的来说,Play 框架非常适合快速创建Web 应用开发。本文将为有一定Java Web框架基础的读者,来重点介绍如何使用play框架来编制一个最简单的信息增删改查应用。

  一、安装Play框架

  安装play框架前,只需要使用JDK 1.5以上的版本即可,将官网上的play框架下载后解压到某个指定目录下,使用的是eclipse开发工具即可。在本文中,将介绍的例子,是一个关于公司、部门、员工之间的CRUD操作,其关系为:一个公司有很多部门,一个部门有很多个员工。

  二、开始使用PLAY框架的脚手架功能

  PLAY框架为能让用户快速开始搭建play系统的原型。下面是使用play中脚手架功能的步骤:

  在命令行方式下,转到play框架的安装目录,本文假设为c:\play下。

  假设我们的应用的名称为corporations,则在play中,新建立一个应用只需要用如下命令即可:play new corporations,其中new表示新建应用,new后的名称则为应用的名称。

  在输入上面的语句后,会提示输入确认系统的名字,这里输入corporations,按回车确认即可。

  我们使用cd corporations目录中,会发现已经有play自带的框架的内容了。我们可以在命令行方式下,执行play run,这时play就会启动自带的jetty服务器,将应用启动起来。

  在启动后,可以通过浏览器浏览刚才新建的应用了,方法是http://localhost:9000,就可以看到一个默认的play应用,其中显示的首页中,简单指导了一些简单的配置方法。如下图:

  三、配置应用 将框架工程导入eclipse

  我们为了要在eclipse中方便我们的编码,所以需要把play刚为我们建立好的框架工程导入到我们的eclipse中去,所以我们按如下步骤去做:

  1、使用CTRL-C,先把我们正在运行的应用停止下来。

  2、依然在corporations目录下,输入play eclipse,表示要生成能导入eclipse的框架工程。

  3、再启动eclipse ,然后使用导入工程的方法,把corporations工程导入。

  4、在这个例子中,用的只是HSQL,所以打开conf/application.conf文件,将下面的

  db=mem 语句前的注释符号去掉,表示我们将使用hsql。

  5、同样,在conf/application.conf文件中,增加如下这行,表示我们将使用play脚手架框架自带的CRUD功能:

module.crud=${play.path}/modules/crud

  6、在conf/routes文件中,增加如下这行:

* /admin module:crud

  注意,在play框架中,routes是路由控制器,这行表示,将所有的CRUD操作都是只有通过 */admin访问的请求,才能实现play自带的CRUD功能。

  7、在进行上述修改后,我们再到命令行方式下,运行play eclipse,然后再到ECLIPSE下按F5刷新一下

  8、如果此时再使用play run,运行会发现暂时还没有更新,因为我们要进行数据层的配置。

Play 框架是一个完整的 Web 应用开发框架,覆盖了 Web 应用开发的各个方面。它借鉴了流行的 Ruby on Rails 和 Grails 等框架,又有自己独有的优势。具体表现在以下几个方面:其一,通过 Play 框架提供的命令行工具,可以快速创建Java Web 应用。其二,它拥有Java 代码动态编译机制,在修改代码之后,不需要重启服务器就可以直接看到修改之后的结果。其三,它还使用 JPA 规范来完成领域对象的持久化,可以很方便的使用不同的关系数据库作为后台存储。其四,它使用 Groovy 作为视图层模板使用的表达式语言。模板之间的继承机制避免了重复的代码。总的来说,Play 框架非常适合快速创建Web 应用开发。本文将为有一定Java Web框架基础的读者,来重点介绍如何使用play框架来编制一个最简单的信息增删改查应用。

  一、安装Play框架

  安装play框架前,只需要使用JDK 1.5以上的版本即可,将官网上的play框架下载后解压到某个指定目录下,使用的是eclipse开发工具即可。在本文中,将介绍的例子,是一个关于公司、部门、员工之间的CRUD操作,其关系为:一个公司有很多部门,一个部门有很多个员工。

  二、开始使用PLAY框架的脚手架功能

  PLAY框架为能让用户快速开始搭建play系统的原型。下面是使用play中脚手架功能的步骤:

  在命令行方式下,转到play框架的安装目录,本文假设为c:\play下。

  假设我们的应用的名称为corporations,则在play中,新建立一个应用只需要用如下命令即可:play new corporations,其中new表示新建应用,new后的名称则为应用的名称。

  在输入上面的语句后,会提示输入确认系统的名字,这里输入corporations,按回车确认即可。

  我们使用cd corporations目录中,会发现已经有play自带的框架的内容了。我们可以在命令行方式下,执行play run,这时play就会启动自带的jetty服务器,将应用启动起来。

  在启动后,可以通过浏览器浏览刚才新建的应用了,方法是http://localhost:9000,就可以看到一个默认的play应用,其中显示的首页中,简单指导了一些简单的配置方法。如下图:

  三、配置应用 将框架工程导入eclipse

  我们为了要在eclipse中方便我们的编码,所以需要把play刚为我们建立好的框架工程导入到我们的eclipse中去,所以我们按如下步骤去做:

  1、使用CTRL-C,先把我们正在运行的应用停止下来。

  2、依然在corporations目录下,输入play eclipse,表示要生成能导入eclipse的框架工程。

  3、再启动eclipse ,然后使用导入工程的方法,把corporations工程导入。

  4、在这个例子中,用的只是HSQL,所以打开conf/application.conf文件,将下面的

  db=mem 语句前的注释符号去掉,表示我们将使用hsql。

  5、同样,在conf/application.conf文件中,增加如下这行,表示我们将使用play脚手架框架自带的CRUD功能:

module.crud=${play.path}/modules/crud

  6、在conf/routes文件中,增加如下这行:

* /admin module:crud

  注意,在play框架中,routes是路由控制器,这行表示,将所有的CRUD操作都是只有通过 */admin访问的请求,才能实现play自带的CRUD功能。

  7、在进行上述修改后,我们再到命令行方式下,运行play eclipse,然后再到ECLIPSE下按F5刷新一下

  8、如果此时再使用play run,运行会发现暂时还没有更新,因为我们要进行数据层的配置。

  六、建立部门跟员工之间的连接关系

  现在我们在建立了部门类和员工类后,可以开始建立它们之间的关联关系了。由于一个部门中是有多个员工,所以在员工类employee中,写入如下代码,建立两个类之间的关联:

  • @ManyToOne 
  • public Department department;
  •   这里依然使用了@ManyToOne的JPA注解去实现多对一的关系。在再次运行程序后,会发现,在增加员工时,会出现下拉菜单选择框,让其选择该员工属于哪一个部门。

      七、建立公司实体类和控制类

      最后,我们建立公司实体类和控制类。同样,在app/models目录下,建立Company类如下:

  • package models;  
  • import javax.persistence.Entity;  
  • import play.db.jpa.Model;  
  • @Entity 
  • public class Company extends Model {  
  • public String name;  
  • public String address;  
  • public boolean isPublic;  
  •  }
  •   company的控制层类代码如下:

  • package controllers;  
  • import models.Company;  
  • @CRUD.For(Company.class)  
  • public class Companies extends CRUD  
  • {  
  • }
  •   这里要提醒一点的是,由于company的复数是companies,而play框架原先约定俗成的是在实体类名后直接加字母s,所以这里使用了注解 @CRUD.For(Company.class),以表明该控制类文件Companies是为company实体类服务的。

      同样,一个公司里有许多部门,因此在Deparment部门类中,建立如下的多对一关系:

  • @ManyToOne 
  • public Company company;
  •   再次运行程序,可以看到,现在三个实体类都建立起来了,可以分别对公司,部门和员工进行CRUD操作,如下图:

      八、优化列表

      我们在查看每个实体类的列表时,发现在列表中,会把每条记录的id都显示出来,这个在程序中假设不需要看到id字段的话,可以通过修改代码实现,比如在Company类中,增加toString方法即可:

  • public String toString() {  
  • return name;  
  • }
  •   而在Department和Employee类中,可以采用同样的方法,以不显示它们的id字段。

     九、增加校验规则

      在输入数据时,校验规则是必不可少的,在play框架中,可以很方便地使用注解来增加校验规则,比如在员工类中,可以要求输入的fullName字段内容不能超过100个字符,而且fullName字段不能为空,则在Employee类中,增加如下代码即可:

    @Required @MaxSize(100) public String fullName;

      下面列出一些常见的校验规则:

      @Email 校验email合法性
    @InFuture 检验是否将来的日期
    @InPast 检验是否是过往的日期
    @Match 对正则表达式的判断
    @Max 最大值
    @Min 最小值
    @Range 检验范围
    @URL 检验是否URL

      十、改变列表的显示格式

      在默认情况下,比如查看employee列表,只能看到employee的名称字段,假设要在列表中看到每条记录的每个字段的话,要修改下play的模版,方法如下:

      1、停止现在的服务,CTRL-C停止。

      2、在命令行下,输入:

      play crud:ov --template Employees/list

      这将在app/views/Employees目录下新建立一个list.html的页面。

      3、重新输入play run,并切换到eclipse中的项目中,按F5更新页面。

      4、在eclipse中,打开app/views/Employees/list.html,这个是雇员列表的模版文件。

      5、在该页中,找到id=”crudListTable”部分,修改为:

    #{crud.table fields:['fullName', 'dateOfHire', 'salary'] /}

      即显示完整所有字段。

      6、重新运行程序,即可看到效果,如下图,可以看到,能看到所有字段值。

      十一、改变列表中标题的显示

      在默认状态下,列表中显示的字段标题是用实体类中的名称的,假如想把fullName修改位Full Name的话,可以在conf/messages下,增加:

      fullName=Full Name

      即可,如下图显示:

      小结

      在本文中,我们学习了如何使用Play框架的脚手架功能,快速搭建CRUD的应用原型。Play框架的配置方法简化了工作代码量。目前Play框架正在不断的完善中,读者可以根据本教程的指引实际操作后,进一步阅读官方文档加以深入学习。


    本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

    目录
    相关文章
    |
    2月前
    |
    Java 数据库
    在Java中使用Seata框架实现分布式事务的详细步骤
    通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
    |
    11天前
    |
    存储 安全 Java
    Java 集合框架中的老炮与新秀:HashTable 和 HashMap 谁更胜一筹?
    嗨,大家好,我是技术伙伴小米。今天通过讲故事的方式,详细介绍 Java 中 HashMap 和 HashTable 的区别。从版本、线程安全、null 值支持、性能及迭代器行为等方面对比,帮助你轻松应对面试中的经典问题。HashMap 更高效灵活,适合单线程或需手动处理线程安全的场景;HashTable 较古老,线程安全但性能不佳。现代项目推荐使用 ConcurrentHashMap。关注我的公众号“软件求生”,获取更多技术干货!
    33 3
    |
    2月前
    |
    消息中间件 Java Kafka
    在Java中实现分布式事务的常用框架和方法
    总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
    |
    2月前
    |
    监控 Java API
    如何使用Java语言快速开发一套智慧工地系统
    使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
    |
    17天前
    |
    移动开发 前端开发 Java
    Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
    JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
    Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
    |
    3天前
    |
    监控 JavaScript 数据可视化
    建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
    智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
    |
    1月前
    |
    Java 开发者 微服务
    Spring Boot 入门:简化 Java Web 开发的强大工具
    Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
    67 6
    Spring Boot 入门:简化 Java Web 开发的强大工具
    |
    27天前
    |
    存储 JavaScript 前端开发
    基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
    一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
    111 13
    |
    1月前
    |
    算法 Java API
    如何使用Java开发获得淘宝商品描述API接口?
    本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
    71 10
    |
    26天前
    |
    前端开发 Java 测试技术
    java日常开发中如何写出优雅的好维护的代码
    代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
    62 2