运行play framework 3.5项目 ...

及旗下全部分类
打开微信扫一扫,关注圣才:
sc100xuexi
认证官方微博
认证官方微博
简单介绍Play Framework框架的作用
发布人:&&发布日期: 08:56&&共610人浏览
有别于其他臃肿的企业级Java框架,简洁的Play框架提供另外一种选择,它关注于开发者的效率和 RESTful 风格的架构。Play 是敏捷软件开发的完美伴侣。
Play 框架的目标是让基于 Java 的 web 应用开发变得更加容易,让我们看一下它是怎么做到的。
想不想看看代码?
没有痛苦的 Java 框架
Play 是一个纯 Java 的框架,它让你保持使用你喜欢的开发工具和类库。如果你已经是一个使用 Java 平台的开发者,
那么你不需要切换到另一种语言,其他 IDE 或者其他类库, 而仅仅是切换到一个效率更高的 Java 环境!
修改 bug 后自动重新加载
Java 平台因为较低的开发效率,已经是声名狼藉了,主要的原因就是重复和繁琐的&编译-打包-部署&的周期。
这就是为什么我们重新对这种开发周期进行了思考,并且通过 Play 让开发变得更有效率。
Play 框架自动编译 Java 源代码,然后直接热加载到 JVM 中而不需要重启服务器。你可以编辑代码,框架自动重新加载,然后直接就看到修改后的结果,就像在 LAMP 或者 Rails 环境中一样。
更有趣的是你可以根据自己的喜好,仅仅使用一个简单的文本编辑器进行开发,而不需要使用功能齐备的 Java IDE。
来源:网络
我的电子书致Play Framework开发者们的一封信 - 博客 - 伯乐在线
& 致Play Framework开发者们的一封信
& 来源: &&&&
导读:3月中旬,Play Framework 2.0 正式版发布了。2.0 版本的主要新特性:内置对 Java 和 Scala 的支持、完全异步编程模型、侧重于类型安全、强大的构建系统、数据存储和模型的集成等。本文是 Roman Bykovskiy 发布在 Play Framework 的 Google 群组的一篇文章。
亲爱的朋友们!
一个小事实:
Scala逊毙了。好吧,我承认这个语言或许被捧上了天,但是编译它而产生的昂贵的时间花费也是不争的事实。整整13秒!这还是在做了微调将其变成模板以后!我自己为了优化编译而专门分配一个分离式服务器,最终将编译速度提高到了5秒——但是这仍然是很大的时间花销!我们已经尝试使用别的平台了!
一个大谎言:
“Play框架让网络应用开发更简单!无论是Java还是Scala”
事实是:“Play框架让网络应用开发更简单——仅仅对于Scala,如果你使用Java……那么,好吧,让神明赐予你力量吧!”我一会儿再讨论这个问题。
(伯乐在线配图)
当我刚听说Play框架的时候,我打开了官方网站,并观看了1.x版本的介绍视频!额滴个神啊!就是它!我当时就认准了!我安装了Play框架,在我的电脑上实现了所有教学视频里的例子,并根据我当时正在做的项目,迅速地写出了一份开发文档。
整整一个月的时间,我都在尝试说服老板,在新的项目中使用Play框架,因为它比我们在使用的所有框架都更优秀!最后我做到了!像变戏法一样,迅速地改变了一切。
但是现在,当我们已是到新的项目将使用Play 2框架时,我的同事们脸都变绿了,并且我无法找到任何借口——来解释Play 2跟Play 1完全不是一码事。如果我自己都不理解Play 2是如何工作的,那我怎么去帮助我的同事呢?
我之所以喜欢Play 1.x版本,是因为它的速度。这里不是指它的运行速度快(随着电脑速度的更新,人人都能做到速度快),而是它的细化速度。框架的一切都是如此的敏捷和简单。而在2.0版本里,这一点简直就是煎熬。2.0版本丢弃了1.0的结构和成果,反而去寻找另一种方法,实现那些本来在1.0中可以轻松搞定的事情,而且还是以好几种模式去做。
我是一个Java开发者。那么我为什么要去学习用Scala语言来制作一个基础模板呢?我仅仅就是需要一个模板而已!只不过是一种格式化输出信息的方法。它能编译当然很好!但是如果为此我就需要花费大量的时间去处理细化,而且绝大多数时间还是在干等,那我编译它有个鬼用?
也许在美国,你们编译Scala代码,但是在我们俄罗斯,Scala是在编译你!
这感觉真是相当不好!
为了说明一些最简单的事情,我不得不在Google groups上发帖,因为这里没有任何的相关信息。
我无法再模板中设定一个变量,这个变量我会在后面的循环中用到。
对于这样一个需要我去“征服”的模板引擎,要它何用?
[error] /home/romka/projects/ponominalu/target/scala-2.9.1/src_managed/main/views/html/event.template.scala:156: '(' expected but ')' found.
&&&),_display_(Seq(/*123.14*/for)),format.raw/*123.17*/(&&& ((sector,i) &-subevent.sectors.zipWithIndex) &&&),format.raw(&&&{&&&),format.raw/*123.64*/(&&&
[error] /home/romka/projects/ponominalu/target/scala-2.9.1/src_managed/main/views/html/event.template.scala:421: illegal start of simple expression
[error] &&&)))})),format.raw/*388.2*/(&&&
[error] two errors found
呃,我应该如何根据这些输出查找错误?别告诉我说错误在156行。这些破信息怎么能帮助我理解发生了什么?他们就是一大堆额外的空白字符!
模板中的数据转换又怎么样呢?
在我把所有数据转换成模板形式之前,我应当使用@Before标注。比如我要在每个页面显示菜单,现在我必须把所有的菜单数组在每个模板调用中转换一下,然后在每个调用里面再通过原始类型传参,这么做不是多此一举么?
你可以说Scala语言是未来发展的方向(但是我怀疑在短期内可能无法提升其编译的速度,不过这些都OK)。那么尝试创新,但是不要企图替代!你认为Eban比Hibernate更好?——只有熟悉Ebean的人才会这么认为吧!
假设在日本开一家餐厅,你尝试着用叉子代替筷子(因为有广泛的观点认为,叉子比筷子更有利于进食),然后看看这会不会成功吧。
向后兼容性永远是Java语言的根基,这也就是Java版本为什么演进缓慢的原因,旧的程序在新版本中运行不会出现问题。
你取消了的War包的创建,那我怎么把程序部署到Tomcat里?你通过修改mons.lang.StringEscapeUtils.escapeHtml(text)包来增加输出文字处理功能。很好! 但是这样就会把文字搞得乱七八糟,比如像:
Сыновь&#1103
为了关掉额外的文字处理,我必须编辑Templates.scala并可能产生重新编译(说实话我还真不会手动编译)。如果Play框架的版本更新了,我又得重来一次。
现在,Play已经成为了我脖中之刺!如果刚一开始它是一个又简单又快速的开发框架,那么如今它已经发展到和其他许多框架一样臃肿和笨重。也许它能吸引大量Scala的粉丝,但是必将遭到Java开发者的厌恶。因为使用Play开发产品,你无法回避使用Scala语言。
也许Scala不是那么糟,但是我是一个Java程序员。我只在我有足够闲心的时候才会去学习一门新的语言。但是我现在不得不去学,才能将我所知道的方法,和Play框架开发者们所宣称的那些知识融合起来。
PS1:还记得苹果公司的格言“简洁至上”么?如果框架不给用户提供那些不需要的东西。那么用户也许会少一些花招,但是这会迫使用户使用真正有价值的方法。他们同样也可以完成一切需要完成工作,与此同时,那些普通用户则被华而不实的东西搅得心烦意乱。
PS2:返回 ok状态 (…) 你不是开玩笑的吧? 如果我已经做好了准备返回,那我肯定是已经达到ok的状态了,否则我就抛出异常了。
PS3:如果使用Scala的主意是来自某个做酸绿网站的家伙,那么他就是万恶之源,消灭他!
英文原文:
编译:在线 –
【如需转载,请标注并保留原文链接、译文链接和译者等信息,谢谢合作!】
关于作者:
可能感兴趣的话题
不会吧,我正想开始学习playFramework的呀,我也是没有多少闲暇来学习scala了。
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线博客团队正试图以我们微薄的力量,把优秀的原创/译文分享给读者,做一个小而精的精选博客,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2015 伯乐在线
赞助云主机play framework学习(CRUD)
model中建的类,如Post(@Entity extends Model),在controller中建Posts类(extends CRUD)。在application.conf中开启crudmodule.crud=${play.path}/modules/crud在routes中声明#use the&crud* /admin module:crud这样,在浏览器中输入localhost:9000/admin就可以看到model类的管理界面,可以进行添加,编辑,删除的功能。在message.fr中,可以为model类中的各个字段起别名,如&postedAt=PostedAt(前为model字段名,后为显示名)。标准化Post数据列表:cd到项目里,输入命令play crud:ov--template Posts/list,然后refresh就可以看到Posts里的list.html文件。
在list.html中,#{crud.table/}一行添加#{crud.table fields:['content','post','author']/}#{crud.table/}标签来生成表格,我们可以将我们想要的参数放进去(admin页面中显示的post数据的columns)。当数据较多时,我们可以用#{crud.custom/}标签让它特定地显示字段的一部分内容。
我们也可以加一个delete按钮,在cmd:play crud:ov--template Posts/show,然后refresh,就产生一个show.html文件,产生如下结果:
也可以通过修改#{crud.form/}标签来定义tags的样式。定义tags的css样式,然后引用。

我要回帖

更多关于 framework 3.5 的文章

 

随机推荐