Play Framework介绍

Play Framework介绍


2024年5月17日发(作者:怎么恢复小喇叭图标)

原文链接:/blog/947046

Play Framework介绍

Play!是一个full-stack(全栈的)Java Web应用框架,包括一个简单的无状态MVC

模型,具有Hibernate的对象持续,一个基于Groovy的模板引擎,以及建立一个现代Web

应用所需的所有东西。颠覆臃肿的JavaEE开发框架(bloated Enterprise Java stacks)

的Play框架1.0发布,它在很多方面有其革命性的独创,也有助于我们了解现在JavaEE

框架的不足。

Play框架吸收PHP RUBY动态语言的特点,采取即时源码编写,即时激活,框架本身融

合了编译器和服务器。取代了 compile-package-deploy 过程,提高产品的开发效率。Play

框架甚至提供在线编辑器,在线修改BUG后即时投入应用。

主要架构特点:

1、一个非常简单的开发周期。此框架自动编译和重新装载源文件的任何改变。

2、简单的无状态MVC架构:智能捆绑HTTP参数到Java方法参数。

(Play框架认为一边是数据库保存状态,一边是浏览器也可以保存状态,那么还要中

间件MVC保存Session状态干什么呢?HttpSession有很多问题,虽然可以处理针对某个用

户的状态,但是万一用户中途离开怎么办,HttpSession对资源消耗,以及在可伸缩性方面

是有问题的。Play框架秉承share nothing架构思想,不再

象黑客那样破解原本自然正

常Http模型,然后强行植入状态,无状态架构可以并行同时输出多个页面,提

高Web性能。)

3、内置基于Apache Mina的快速HTTP服务器。

4、一个基于Groovy的强大的模板引擎,具有多层继承,定制用户标签的能力,Play

框架认为JSP & Expression Language模板机制很好,但是需要太多配置,吸收其模板设计,

剔除配置。等。

5、优秀的错误报告功能:当发生异常,此框架会直接显示出错代码,甚至是模板代码。

6 、RESTFul

众所周知的Servlet API 和Struts其实是扭曲的,使用奇怪的API将Http协议隐藏

起来,Play框架认为一个Web应用框架应该给用完整的直接的对Http调用和使用,这其实

就是RESTFul精神。这样 URI是play framework的主要概念。

对一个Java对象的调用,不是写Java语句,而是使用URI就可以,如下:

GET /clients/{id} 实际是调用Clients对象的show方法。

7、集成JPA 持久层

(Play框架采取JPA作为持久化,并且使其更方便使用。个人意见:这段代码倒是直

接将持久层和表现层直接耦合在一起,没看到Domain Model了。看来DDD需要普及到每个

角落不容易啊。)

8、整合了缓存支持,可以使用memcached作为分布式缓存。

9、融入了OpenID 这样单点登录SSO技术。

10、提出组件重用,可以重用各种组件,包括CSS Javascript

个人点评:总体来说,Play框架是一个与Struts2 JSF Tapestry竞争的框架,但是又

整合了持久层和服务器。

业务系统市场分析:

90%的web业务开源系统都是php版本的,特别是新兴产品的开源实现,java的身影几

乎销声匿迹了。可惜j要ava出身的人去阅读php风格的代码简直是一种受虐。这其实说明

一个道理,java优美的架构还是很有价值的。但优美+务实的平衡才是最佳选择。

框架对比:

运行方式与服务器兼容性:

Play 应用可使用这么几种方式运行:标准Servlet容器、独立服务器、Google App

Engine、Stax 云计算平台,等等。

你也可以将应用发布到标准的应用服务器上执行,大部分应用程序支持Play应用,下

面的应用服务器都可以用来运行Play应用。这些应用服务器经过测试是支持Play 1.0.2

的,但其他版本尚未经过充分测试。

JBoss JBoss JBoss Glasshfish IBM

4.2.x 5.x

✓ ✓

6M2

v3

6.1

✓ ✓ ✓ ✓ ✓ ✓

详细分析与外界介绍:

下图是 Play Framework 框架中用到所有的 jar 包的集合,位于

{play}/framework/lib 目录。

Play! Framework 是07年的一个项目,08年开源,09年11月25日发布了1.0版。发

布后我就一直在学习这个框架。现在正式发布版本已经是1.01版,而且1.1版本也在每日

更新。可以在 下载已发布版本,和每日的最新版。

bc. # Additional modules

# ~~~~~

=../gwt

=../cms

=../forum

ory=../directory

学习Play!的过程中,最经常的感受就是——简直太简单了!并不是说Play!是一个设

计简单的框架,相反学习中发现处处都会发现Play!设计的完整,这种完整性甚至包括网站

设计和学习文档。Play!的简单之处在于它学习和使用起来非常简单。使用Play!新建项目,

所有的目录结构都会自动建立。Play!摒弃了传统的JSP,Servlet技术(这太伟大了),自己

提供了一套非常易用的MVC 框架。Play!内建了JPA的支持,内置了Hibernate作为默认的

持久化引擎。

Play! 还内置了HSQLDB 数据库,支持内存数据库,非常方便做项目开发和测试。

Play!的Controller采用命名约定:

无需其他任何配置,Play!会自动映射form中的name和password参数至createUser

方法。

View层Play!使用以Groovy语法写好的html模板中去以render()方法的参数渲染,

并将结果回传给客户端。

外界介绍:

Play!虽然使用简单,扩展性却非常强大,篇幅所限所述不能详尽。

是Play!的官方网站,推荐大家到这儿看看。Play!的文档

IBM Geronimo Tomcat Jetty Resin 4.0.5

6.x 7.x Websphere Websphere 7 2.x


发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1715884876a2686701.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信