Play Framework非常好用,只是开始接触时版本较低,等到PlayFramework升级后变化了太多的东西,需要彻底研究一番。以前接触的版本是1.2.7,现在最新版本是2.8.2,在使用2.8.2期间遇到问题,网上可以查到的资料几乎没有,只能硬着头皮研究官方开发文档。经过一番研究笔者有了一些心得还有踩过的一些坑,决定在这里分享给大家,希望可以帮助到有需要的人。
现在的PlayFramework相比Java更加的支持Scala,不知道将来是不是有一天他会放弃Java,不过我目前用的是Java。
PlayFramework的官网地址www.playframework.com,到目前为止,我认为需要的资料都可以在这里找到,只是有些东西需要反复琢磨一下。
本系列文章打算按照开发历程和官网的介绍为脉络进行展开。
首先PlayFramework是一个全栈Web框架,集成了各种组件,用起来也很方便,当然前提是你知道怎么去用。比如跨站跨域的保护性配置。
运行环境基本需求:
1.Java SE 1.8或以上
2、sbt。目前最新版本1.3.13
可以从官方提供的样例对PlayFramework2.8.2有个基本的认识,可以从这获取https://developer.lightbend.com/start/?group=play&project=play-samples-play-java-hello-world-tutorial。
下载好的样例程序只有十几兆,进入程序目录运行“sbt”指令play开始进入漫长的下载过程,更新完毕以后恢复到命令行状态,开发人员可以进行命令交互。
知识点:
1、要指定版本的PlayFramework需去project目录下修改plugins.sbt文件
2、出现一个怪异的问题,Windows中把此样例解压到相对较深的目录从来都是编译失败的,最后近乎绝望的时候把他放到根目录,编译成功,后来思考了一下大概是目录名称太长的缘故。这个问题折腾了很久,希望可以帮助到你。关于目录路径过长的问题在后面的版本发布中也会涉及。
编译下载完毕下一步就是设置自己偏好的IDE,我这里采用的是eclipse2020。如何操作官方指引都很清楚,尤其需要注意的坑是官方文档有句话是这样的写的:
我认为他说的you can set the。。。这句话写的尤其不准确,就是因为这一点搞的我翻来覆去,折腾了很久才成功使用eclipse进行开发。经过我的折腾分析下来就是,如果你只有java代码,那么你必须把下面两句话加进去,记住,是必须!否则必败!血泪啊!
3、关于eclipse调试,也折腾了很久,也可以说出来给初学者一个参考。材料上说的很清楚只要sbt -jvm-debug 9999 run就可以启动调试了,可是到了我这里偏偏就是不行,就是不能调试,这不能调试还玩什么?难不成要放弃PlayFramework?不行,硬着头皮找资料研究方法,终于找到一个解决方案,感谢作者的分享。关于调试我就没有再使用官方提供的方法,因为使用不了。。。而是采用了网上的帖子的方式给sbt设定一个环境变量,之后开始正常的断点调试工作,这对我而言又是一个大坑,很难忘啊。帖子请参考:http://skaka.me/blog/2015/09/13/play3/。核心就在于在Windows中添加一个系统环境变量“SBT_OPTS”:“-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999”这样就可以啦
4、启动play。在命令行中输入sbt,之后再输入~run就可以进入开发状态,在chrome中输入http://localhost:9000即可对web应用进行访问。这里有一点又尤其需要注意,这个端口9000在开发模式下的配置文件中是不可以修改的,可以在命令行运行的时候输入run 9001,如果只输入run并且打算靠配置文件中配置的端口生效来改变端口,告诉你,这样是不可以的。配置文件中的端口配置是针对版本发布时候使用的,这也会是我踩过的坑。
OK到此位置基本完成了PlayFramework2.8.2的概述工作,主要是问题记录,其他基本操作请参考官网。后续篇章根据笔者实际遇到的技术问题和随想慢慢展开