Play framework 是一个Rails风格的Full-stack Java Web框架。最近由于项目需求,所以终于把之前学习的应用上了。在这里与大家分享。在2.0开始,play framework 用scala进行了重构。新增加了不少特性。你可以用java语言进行编写外,也可以使用scala语言进行编写。不过本人还是倾向使用Java作为开发语言(主要是scala语言还要多看看)。
使用Play framework 当然是创建项目,列下以下步骤:
1. play new 你的项目名(当然你要配置好你的classpath)
2. 跳转到你的项目目录下,使用play
3. 选择你的IDE ,在下喜欢用IntelliJ 所以是输入idea
4. 当然是run 默认是9000端口,不过你也可以在命令行中修改 run 8080 就可以修改了。
在流行的Java框架中,很多人喜欢用ssh/传统的JavaEE进行开发,不过对于现代编程是非常不合适的。举个例子来说,你要使用strust+spring+hibernate ,需要配置一大堆的xml。每次修改都是一件痛苦的事情而且当我修改文件时需要大量的重新编译,非常麻烦。。在Rails的风格上使用约定胜于配置的方式,这样可以让程序员更多的关注代码而不是配置。还有使用Play开发时没有编译,打包和部署这些阶段,代之两个不同环境:用于开发阶段的DEV模式和用户部署阶段的PROD模式。Java源代码在运行时编译和加载。如果Java源文件在应用运行时发生改变,代码会重新编译并热加载(hot-swapped)到JVM中。模板文件也是如此。这样不用因为修改而去重新变异大量的代码节省了时间(haha 我说的所改即所得)。
Play framework 基于MVC的方式进行分布,约定model/views/controller放在指定app文件夹内(这里用package比较合适一点):
app/controllers
一个Controller就是一个Java 类,它的静态公共方法则是动作(Action)。动作是接收HTTP请求后的Java处理入口点。Controller类实际是面向过程的,非OO。Action从HTTP请求中提取数据,读或更新Model对象,然后返回一个包装成HTTP响应(HTTP Response)的结果。
app/models
Model是一组具有所有OO特性的Java类。包含数据结构和应用可使用的操作。支持通过JPA,EBean持久化。
app/views
应用的视图由Play的模板系统生成。Controller从Model获取数据,然后使用模板呈现它。此package包含HTML,XML等模板文件,用作动态生成模型的表述(Representation)。
在play framework中,个人觉得有两个文件是比较重要的。
project/Build.scala
假若你需要引用一些功能时,你必须通过他进行运作。如想加入 hibernate,spring。通过他就可以在指定服务器中加载相关的插件。如图:
conf/applicaton.conf
如果你需要添加数据库等操作,这里就是关键了。当然你不需要去写xml,语法相当简练 ,如图:
如果你想更深入理解playframework 的搭建知识个人建议去git上的官方wiki,那里比较详细
github.com/playframework/Play20/wiki/
还有介绍下国外大牛的blog也是不错学习的地方,不过现在貌似和小弟一样都是刚开始写