我刚刚偶然发现了以下新的Java Web框架:Play
http://www.playframework.org/documentation/1.0/home
有这么多惊人的功能,我很惊讶之前没有听说过它...
听起来像是Java Web开发的乐土...
有人尝试过吗?有实际经验吗?你认为学习它是否值得?
我刚刚偶然发现了以下新的Java Web框架:Play
http://www.playframework.org/documentation/1.0/home
有这么多惊人的功能,我很惊讶之前没有听说过它...
听起来像是Java Web开发的乐土...
有人尝试过吗?有实际经验吗?你认为学习它是否值得?
对于领域、控制器、服务和 JUnit,回归到传统的 Java 是有道理的。强类型意味着 IDE 可以可靠地帮助处理智能提示、代码导航、重构等。(因此,如果您喜欢 Eclipse,就不需要支付 IntelliJ 的费用。)为了获得强大的工具支持而编写更冗长的代码对我来说是一个不错的选择。我们会看到的。
我喜欢仍然可以在页面模板中使用 Groovy。但我担心可能会在模板中放置比应该多的代码。
我没有使用过 JPA,但它似乎与 GORM 对我来说非常接近,所以这很酷。
Grails 中的 Spring IOC 支持完全透明,而 Play 的支持似乎很少;但是,我认为 IOC 被过度使用了,我非常愿意手动编写 Spring XML 映射,只有在我真正需要时才这样做。(我的一个未解决的问题是,我认为 JPA 有事务支持,这就是为什么像 Grails 那样它不需要 Spring 的原因,对吧?)
我从来都不喜欢 Python,所以当我看到 Play 使用 Python 构建脚本时,我感到非常不爽。但是我同意 Grails 的 GANT 脚本运行得很慢。此外,虽然 GANT 是 XML ANT 的重大改进,但仍然很难理解 ANT 的概念。Grails 的 GANT 脚本非常复杂。所以,我会持开放的态度去尝试。
Play 的 "应用程序模块" 模型听起来就像 Grails 的 "插件" 模型,这很酷。
我对我已经阅读过的 Play 文档印象非常深刻。我一开始有很多问题,但其中一半问题直接得到了答案。
随着进一步深入学习,我稍后还会再次汇报。
我尝试了Play,印象非常不错:它提供了一个非常简单的开发模型,比大多数框架都要简单。最重要的是,运行时在“开发模式”下能够直接解析 .java 文件的能力非常有用:只需重新加载浏览器中的网页,而无需运行构建脚本或等待重新部署,就能大大提高开发速度。此外,浏览器中显示的错误消息也非常好。
另一个给我留下深刻印象的是整体美感:教程应用程序看起来真的很不错(代码和网页设计都很好看),虽然这可能只是一个细节,但这延伸到整个框架、API以及文档。
我曾经使用过Grails、Tapestry 4/5以及纯Java/JSP/Spring/Hibernate。
我认为这是很长时间以来第一次朝着正确的方向迈进。Grails是一个非常好的第一步,但Play!看起来像是有真正潜力的东西。Scala支持将在1.1版本中推出。如果我有机会用Clojure编写我的控制器/领域模型,那我就入坑了 ;)
在过去的一年中,我们使用Play! 1.2.4版本已经发布18个小版本,生产了一个名为“absences”的校园内部应用程序(参与者:100多名教师,700多名学生和行政团队),并且没有发现任何明显的错误。客户端使用Adobe的FLEX 4.6编写(非常漂亮的视图)。数据以AMF3格式(Cinnamon模块)发送和接收。我们使用基于JPA EclipseLink和MySql的简单dao层来访问数据库。该应用程序存储在Linux虚拟服务器上。我是Play的忠实开发者,因为它的简单性和高效率的方法。
我目前在工作中使用Play框架构建Web应用程序,该框架可进行大规模数据处理。我必须说,Play提供的速度非常显著,比RoR提供的速度更快。此外,Play是基于Java的框架,因此可以轻松地进行多线程处理。接下来是当您使用像Japid和Netty这样的基于Java的模块与Play一起使用时,您将获得卓越的性能。这就像可以无限制地进行性能调整。在我看来,这是一个必须尝试的。
我喜欢Play的外观,但还没有尝试过。从浏览文档中发现一件事情比较突出,那就是大量使用静态方法。从单元测试的角度来看,这总是让事情变得更加困难(我在想模拟),并且与典型Java开发中的“面向对象”思想背道而驰。也许这就是重点,但这只是让我稍微有些失去热情……
我正在一个小项目中使用Play,它似乎正是他们所说的那样。但我认为框架应该自带一项功能:能够使用多个数据源(例如使用多个数据库模式)。这是我目前发现的唯一缺失的功能。
敬礼, Uilian