当然,我听过很多有关Rails,Django和最近的Node.js的精彩故事; 实际上,围绕这些技术有一些引人入胜的故事。 我最终将大量的业余时间用于这些技术上,而我实际上非常开心地用它们来构建一些小型应用程序和原型。 但是,第二天早上我会醒来,去上班,面对另一个重要的重要项目,然后回到我尝试过的事实:Java。
其中一个项目是房利美的在线报价管理系统,该系统在第一个月就收到了10亿美元的报价。 在我看来,我无法向这种重要项目的团队介绍一种全新的语言,尤其是像Python或Ruby这样的脚本语言。 从个人经验来看,如果没有类型检查,我很难管理一个大型项目。 我对Java领域的选择并不感到十分兴奋,因为我对Java领域的选择并不感到十分兴奋,而与其他选择(例如Grails,Spring Roo等)相比,我的成功程度却很小。那时,我并不想放弃Java作为一种语言,尤其是因为它的可靠性而逐渐成为我信任的JVM。
然后我遇到了Play ; 对我来说一见钟情。 我很想告诉您我是如何玩到Play的,只需在Twitter( @_felipera )上关注我。 一旦决定乘车兜风,我马上就起来跑步! 使用一个简单的命令“ play new”,就定义了整个应用程序结构。 然后再执行另一个简单的命令“ play run”,就可以开始聚会了! 我立刻就松了一口气,因为我不需要拿出所有这些XML文件,Spring的applicationContext.xml,web.xml,Hibernate的HBM文件,然后就可以弄清楚如何将它们连在一起! 即使在使用这些技术多年后,我仍然必须从某个地方复制并粘贴它们。 我永远都不记得所有这些语法。
对我来说,另一个明显的吸引力是Play能够即时重新加载类而无需重新部署整个应用程序或重新启动服务器。 我想我们都知道在应用程序上工作,对类进行更改,执行maven或ant deploy会是什么样子……等到打包战争之后……复制到deploy目录中……等待servlet上下文被破坏……然后再等待一些时间来部署应用程序。 然后…最终部署了应用程序之后,我们打开浏览器,进入开发环境,然后出现错误! 问题可能像将单个字符放到某处一样简单。 不管问题是什么,我们仍然需要重新完成整个过程。 到第三次或第四次发生时,开发人员会在Slashdot,Hacker News或他/她最喜欢的网站上划分区域。 Play可以很好地处理课程重载; 您真的不必重启服务器!
Play的无状态模型也吸引了我,该模型“无共享” HTTP体系结构。 我们中的许多人都不幸地开发了,甚至更糟糕的是,它支持基于Stateful模型构建的基于J2EE的应用程序。 管理状态,集群安全的缓存对象,HTTP会话确实非常困难,尤其是对于那些Enterprise Java Bean(EJB)以及附加对象的整个概念而言。 Play不会在每个节点之间共享状态,从而简化了群集的管理,它提供了可感知群集和群集安全的缓存解决方案。
伙计,我可以整夜继续前进,但我会让我摆脱所有的疯狂! 简而言之, Play是用于现代Web应用程序的完整堆栈框架,具有基于NIO的开发和生产服务器,对MVC的完全支持,持久性引擎,完全集成的测试框架(单元测试和功能测试),强大的异步Web服务客户端,基于异步的作业管理器,可通过模块使用的多个扩展,通过其插件机制,依赖项管理,验证框架以及WebSockets等更高级的功能支持对框架行为的完全自定义。
我不知道你们是否知道,但我是个老人。 我从事Web应用程序开发已有15年左右的时间。 并且在大多数情况下,具有永恒的激情。 但是Play重新振兴了我对重新开发Web应用程序的热爱。
参考: 为什么我会爱上游戏! 框架? 从我们的JCG合作伙伴 Felipe Oliveira在“极客完全加入”博客中获得。
- 简单的Twitter:Heroku上的Play框架,AJAX,CRUD
- RabbitMQ播放模块! 构架
- Spring MVC开发–快速教程
- SmartGWT入门,提供出色的GWT界面
- Vaadin附加组件和Maven
- Java教程和Android教程列表
翻译自: https://www.javacodegeeks.com/2011/10/play-framework-why-did-i-fall-in-love.html