Play! 一个Rails-like的Java框架

来源:互联网 发布:汽车租赁管理系统java 编辑:程序博客网 时间:2024/04/26 17:50
由于Java语言的局限性,实现一个Rails-like的Java开发框架一直是一个难题。在Java上想体验Rails-like的开发模式,只能选择Grails或者JRuby on Rails。然而这两种框架都是动态语言实现的框架,只是基于JVM而不是基于Java语言本身。动态语言确实有很多优点,但往往难以调试。是否有一个Java语言实现的Rails-like框架?答案是Play!

Play!是一个full-stack Java Web应用框架,包括一个简单无状态的MVC模型,Hibernate的持久性对象,基于Groovy的模板引擎,以及建立一个现代化网络应用所需的一切。注意,这里虽然使用了Groovy,但只是是作为页面模板语言,这和freemaker、velocity使用自己定义的语言是同样的道理,Groovy的成熟以及它和Java的相似性决定了采用Groovy远远好于自己定义一个语言。

Play!的主要特性:
  • 简单的开发周期。该框架可自动编译和重新装载已改变的源文件。也就是说在保存源代码的改变后,就能立刻从浏览器中看到结果,不需要重新编译、部署、重启服务器。
  • 约定优于配置。
  • 智能绑定HTTP参数到Java方法参数。
  • 无状态的模型,无共享架构(Share-Nothing Architecture),为REST做好了准备(未来的目标是RESTful架构),具有很好的伸缩性。
  • 一个基于Groovy的强大的模板引擎,可实现多层继承,定制用户标签等功能。
  • 包含了很多开发Web应用需要的功能整合,如Memcached、OpenID、插件系统等。
  • 优秀的错误报告功能:发生异常时,该框架会直接显示出错误的源代码,甚至是模板代码。
  • 纯Java,能够使用任何Java类库,能够很好的生成eclipse和netbeans项目文件。
  • 速度很快。
初步看了下文档,应该是目前最接近Rails的Java framework,整个框架和我最近设想的一个框架差不多,很多简化 Java Web开发会遇到的问题,play!都给出了一个尽可能的解决方法,比如HTTP参数绑定、属性get/set等等,局限于java语言本身,目前也只能这样了。play!目前还没有集成验证功能,也没有一些诸如HTML encode的工具库,和spring的集成也好像还在开发中,不过这些都应该很容易解决。

该项目是开源的,您可以在http://www.playframework.org上查看更多!