Play 框架概述
(原文链接:http://play-framework.herokuapp.com/zh/overview
来自"Playframework中文小站
" )
有别于其他臃肿的企业级 Java 框架,简洁的 Play 框架提供另外一种选择,它关注于开发者的效率和 RESTful 风格的架构。Play 是 敏捷软件开发
的完美伴侣。
Play 框架的目标是让基于 Java 的 web 应用开发变得更加容易,让我们看一下它是怎么做到的。
想不想看看代码?
阅读 你可以使用 Play 做的5件很酷的事
,或者直接从 Hello World 入门指南
开始 。
Play 是一个纯 Java 的框架,它让你保持使用你喜欢的开发工具和类库。如果你已经是一个使用 Java 平台的开发者,
那么你不需要切换到另一种语言,其他 IDE 或者其他类库, 而仅仅是切换到一个效率更高的 Java 环境!
Java 平台因为较低的开发效率,已经是声名狼藉了,主要的原因就是重复和繁琐的“编译-打包-部署”的周期。
这就是为什么我们重新对这种开发周期进行了思考,并且通过 Play 让开发变得更有效率。
Play 框架自动编译 Java 源代码,然后直接热加载到 JVM 中而不需要重启服务器。你可以编辑代码,框架自动重新加载,然后直接就看到修改后的结果,就像在 LAMP 或者 Rails 环境中一样。
更有趣的是你可以根据自己的喜好,仅仅使用一个简单的文本编辑器进行开发,而不需要使用功能齐备的 Java IDE。
当有错误发生时,框架会尽最大的努力,辨别并显示出错误信息。
Play 甚至对 Java 堆栈跟踪信息进行优化,以便帮助你更容易地解决问题。看看 Java 堆栈跟踪是如何展示模板的执行过程的。
想想,你在一端有一个数据库,另一端是一个浏览器,为什么非要在两者之间存在一个状态呢?
基于有状态和组件式的 Java Web 框架使我们很容易自动保存页面状态,但是这带来了很多其他问题:如果用户打开了第二个窗口时会发生什么?如果用户单击了浏览器的后退按钮呢?
PHP,Ruby on Rails 和 Django 等许多 Web 应用框架促进了 无共享(Share Nothing)
架构的发展。随着浏览器愈来愈强大,现在很容易使用 Ajax,或者离线存储去解决客户端的状态问题。
我们不再需要为了在 web 上重建一个伪造的状态而去 hack HTTP 模型。 无共享(Share Nothing)
的另一方面好处是,可以更加容易地并行地渲染页面的各个部分,更容易地是实现页面局部更新(渐进式增强)。
如
果你使用过另外一种 Java Web 框架,例如 Servlet API 或者 Struts 框架,那么你已经看到了一个把 HTTP 协议和
Java API 以及一些奇怪的概念关联起来的抽象体系。Play 和它们想的不同,一个 Web 应用框架应该让你可以完全地直接地访问 HTTP
协议,这是 Play 和其他 Java Web 框架的一个根本性区别。
HTTP 协议,请求/响应模式,REST 架构风格, 内容类型(content-type)协商
,统一资源标识符(URI) 都是 Play 框架涉及的主要概念。
例如,绑定一个 URI 模式到 Java 调用只需要这样一行:
GET /clients/{id} Clients.show
如果 Ajax,REST 风格和在页面之间维护前进/后退操作,是你在日常的 web 开发工作中需要面对的问题,那么请给 Play 一个机会吧。
我
们很喜欢 JSP 和 表达式语言背后的思想,但是为什么我们需要这么多的配置文件才能创建一个标签库呢?为什么我们不能完全地访问对象模型呢? JSP
有很多的约束,这的确令人沮丧。这就是为什么我们创建了一个自定义的模板系统,灵感来自 JSP ,但是没有它的那些约束。
你,还有其他人,应该已经疲倦了写类似这样的代码:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<c:choose>
<c:when test="${emails.unread != null && fn:size(emails.unread)}">
You have ${fn:size(emails.unread)} unread email(s)!
</c:when>
<c:otherwise>
You have no unread emails!
</c:otherwise>
</c:choose>
我们认为,你一定更喜欢这样写:
You have ${emails.unread ?: 'no'} ${emails.unread?.pluralize('email')} !
Play 模板引擎使用的表达式语言是 Groovy
,它的语法和 Java 一致。 Play 主要使用模板引擎来渲染 HTML 内容,不过你同样可以使用它去生成其他内容,例如 email 邮件消息,JSON 等等。
Java
持久化接口( Java Persistence API )是一个简洁的 Java 版的 ORM 框架,如果你使用过 JPA ,你会惊讶于它在
Play 框架中变得如此简单。不需要任何配置,Play 会自动启动 JPA 实体管理器,并在代码发生修改时自动地同步。
而且如果你使用 Play 提供的 play.db.jpa.Model
作为超类时,它会帮助你把代码写得更漂亮。来看一下:
public void messages(int page) {
User connectedUser = User.find("byEmail", connected()).first();
List<Message> messages = Message.find(
"user = ? and read = false order by date desc",
connectedUser
).from(page * 10).fetch(10);
render(connectedUser, messages);
}
集成的测试可以让你更容易的去进行测试驱动开发 (Test-Driven Development) ,你可以写下各种类型的测试,从简单的单元测试到完整的 acceptance 测试,然后直接在浏览器中使用 Selenium
运行测试。代码覆盖率也会被考量。
Play 框架的最初灵感是来自于我们自己的 Java 应用。它包含了创建一个现代 Web 应用所需要的所有工具,包含:
- 支持 JDBC 的关系数据库
- 基于 Hibernate ( JPA 接口 ) 的对象-关系映射框架( ORM )
- 集成的缓存支持,易用的分布式缓存系统( memcached )
- 简单直接的提供 JSON 和 XML 的 Web Service 服务(我们说的是 真正
的 Web Services,而不是 SOAP 之类)
- 支持使用 OpenID 进行分布式的身份认证
- 可以将 Web 应用部署到任何地方(应用服务器,GAE ,云服务,等等)
- 图像处理 API
Play 模块化的架构使你可以把你的 Web 应用和其他很多的模块组合起来。多亏了应用模块( application modules
),利用它你能够以一种非常简单的方式重用你的 Java 代码,模板,静态资源(如 JavaScript 和 CSS 文件)。
尝试一下吧
安装 Play 框架
,然后开始开发你的第一个应用吧。
(原文链接:http://play-framework.herokuapp.com/zh/overview
来自"Playframework中文小站
" )
- 大小: 139.6 KB
- 大小: 54.6 KB
- 大小: 76 KB
- 大小: 97.8 KB
分享到:
相关推荐
framework api,play api"都是指Play Framework的API文档,它包含了框架的所有公共类、方法和接口,供开发者在编写代码时查阅和引用。API文档是理解框架工作原理、学习如何使用框架功能以及解决问题的关键资源。 ...
- **定义与背景**:Play Framework 是一个开源的 Web 开发框架,适用于 Java 和 Scala,特别强调高生产力、易于测试和可扩展性。它采用了一种轻量级、非阻塞的架构,能够高效地处理大量并发请求,非常适合构建现代 ...
1. **Play框架概述** Play框架强调开发的敏捷性和简洁性,它基于HTTP,提供了一种无状态、基于事件的模型。它将代码与HTML模板紧密集成,使得开发人员能够更快速地构建动态网页应用。此外,Play框架支持多种数据库...
Framework 2 概述 Play! Framework 2 是一个用于构建现代 web 应用程序的高性能、轻量级框架。它由 Java 和 Scala 支持,并且特别强调开发者的生产力。通过采用一种叫做“响应式编程”的模式,Play! Framework ...
《Ionic框架参考手册中文》是一份详尽的指南,专为使用Ionic框架进行移动应用开发的开发者提供。Ionic是一款开源的HTML5移动应用框架,它基于AngularJS,致力于构建高性能、跨平台的混合移动应用。通过利用Web技术如...
Java Web 框架包括多种类型,如 Struts2、Spring MVC、Play Framework 等。 二、Struts2 框架概述 Struts2 是一个基于 Java 语言的开源 Web 应用程序框架,由 Apache 软件基金会提供。Struts2 框架提供了一个灵活...
Revel是一个高效的Go语言Web开发框架,它的设计理念很大程度上受到了Play! Framework的影响。Revel提供了许多现代Web开发所需的特性,使得开发者能够快速地构建高性能的应用程序。尽管Revel仍然在不断发展和完善之中...
一、Revel框架概述 Revel框架的核心特点是其模块化设计,它包括路由、控制器、模板引擎、中间件、日志和配置等多个组件。这些组件协同工作,为开发者提供了一种流畅的开发体验。Revel强调代码的组织结构,将应用程序...
2. **配置项目依赖**:根据 Play Framework 的官方文档,确保正确配置了所需的依赖库。 3. **运行 Play 项目**:启动应用服务器,并通过浏览器访问相应的 URL 来测试应用。 以上就是 IntelliJ IDEA 11 的快速入门...
Android官方API文档是开发者在进行Android应用开发时的重要参考资料,它包含了从基础到高级的所有Android API接口、类库以及各种组件的详细说明。这个“Android官方API文档完整版Html”是一个离线版本,允许开发者在...
尽管Struts1_1_.x在当时有着广泛的应用,但随着技术的发展,它逐渐被Spring MVC、Play Framework等更现代的框架取代。这些新框架提供了更好的注解支持、依赖注入和模块化设计,使得开发更加高效和灵活。 七、学习...
- 示例中提到了“JAVA”和“play framework”,表明论文可能涉及到Java语言的Web应用开发,Play Framework是一个基于Java的轻量级Web应用框架。 - “Fusioncharts”是一种数据可视化工具,可能在论文中用于展示...
1. **KMDF(Kernel-Mode Driver Framework)**:微软提供的一个简化WDM驱动开发的框架,提供了许多预定义的类和接口。 2. **IRQL(Interrupt Request Level)**:驱动中的同步和中断处理涉及到IRQL,需要理解和正确...
- 这个标题表明了文档的主要内容是关于Android框架的设计及其移植到新平台的过程。 **描述**:“jollen的培训教程。如何porting android的一个入门培训。” - 描述指出这是由jollen创建的一份培训材料,主要目的是...
1. **Struts框架概述** Struts是一个基于Servlet和JSP的框架,旨在简化MVC应用程序的开发。它提供了控制器组件,用于处理HTTP请求,并将这些请求转发到相应的模型组件进行业务逻辑处理。最后,视图组件负责展示结果...
开发者可以使用Kernel-Mode Driver Framework (KMDF)或User-Mode Driver Framework (UMDF)来编写驱动程序,这些框架提供了高级别的抽象和错误处理。 **安全性** Windows CE提供了基础的安全功能,如用户权限管理、...
1. **Struts框架概述**: - Struts框架是Java EE(Enterprise Edition)中的一个重要组成部分,它提供了强大的控制层,帮助开发者管理应用程序的流程。 - 它遵循MVC设计模式,将业务逻辑、数据处理和用户界面分离...
虽然Struts在早期非常流行,但随着技术的发展,Spring MVC和Play Framework等现代框架逐渐成为更多开发者的首选。Struts2是Struts的升级版,解决了许多Struts1的局限,但依然面临性能和复杂度的问题。 通过深入学习...