Play framework 2.0 介绍
?
play famework 2.0?--该类别系列文章是对play2.0手册中正对java开发者部分的简略翻译(错误是在所难免的)。
?
play 2.0是一个高生产力的Java和Scala Web应用框架,集成了你需要的现代web应用开发的组件和API。
?
Play基于一个轻量的、无国籍的、web友好的架构。基于复用(迭代)IO的反映模型,使他成为一个功能
可预测并且消耗最小资源(CPU、内存、线程)的高可伸缩性的web应用框架。
?
Play的特性
强健快速
Play充分利用了Scala编译器的能力检测一切类型、避免运行时错误,拥有极高的性能表现。
?
反映模型
Play围绕一个反映模型进行构建,该模型基于事件驱动和非阻塞IO。能够实时响应。
?
可扩展
Play基于一个无状态、web友好的框架,通过增加服务器就可以容易的进行扩展。
?
短周期
编辑你的文件然后保存,刷新你的浏览器就可以立即看到结果。不需要重新编译、部署和重启。
?
有趣&高效
减少你等待应用重启花费的时间,提高生产力,让你更快的完成项目。
?
真正的可扩展性
通过在多个Play服务器上运行你的程序轻易的进行扩展。
?
Java和Scala API
在同一个应用里使用Java、Scala或者混合使用两种语言,Play确保能够容易的做大限度的使用Scala的特性,
同时保证与现有的Java代码和库能百分之百的兼容。
使用Play新建一个工程,使用如下命令:
play new myApp,输入该命令后会提示输入应用程序名称,选择应用程序模版。
写道
E:\play\apps>play new myApp
_ _
_ __ | | __ _ _ _| |
| '_ \| |/ _' | || |_|
| __/|_|\____|\__ (_)
|_| |__/
play! 2.0, http://www.playframework.org
The new application will be created in E:\play\apps\myApp
What is the application name?
> myApp
Which template do you want to use for this new application?
1 - Create a simple Scala application
2 - Create a simple Java application
3 - Create an empty project
> 2
OK, application myApp is created.
Have fun!
?
cd到新建的工程目录下,输入play然后按回车,进入到play控制台。在控制台可以输入play help查看帮助。
写道
E:\play\apps>cd myApp
E:\play\apps\myApp>play
[info] Loading project definition from E:\play\apps\myApp\project
[info] Set current project to myApp (in build file:/E:/play/apps/myApp/)
_ _
_ __ | | __ _ _ _| |
| '_ \| |/ _' | || |_|
| __/|_|\____|\__ (_)
|_| |__/
play! 2.0, http://www.playframework.org
> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.
[myApp] $ help play
Welcome to Play 2.0!
These commands are available:
-----------------------------
classpath Display the project classpath.
clean Clean all generated files.
compile Compile the current application.
console Launch the interactive Scala console (use :quit to exit).
dependencies Display the dependencies summary.
dist Construct standalone application package.
exit Exit the console.
h2-browser Launch the H2 Web browser.
license Display licensing informations.
package Package your application as a JAR.
play-version Display the Play version.
publish Publish your application in a remote repository.
publish-local Publish your application in the local repository.
reload Reload the current application build file.
run <port> Run the current application in DEV mode.
test Run Junit tests and/or Specs from the command line
eclipsify generate eclipse project file
idea generate Intellij IDEA project file
sh <command to run> execute a shell command
start <port> Start the current application in another JVM in PROD mode.
update Update application dependencies.
Type `help` to get the standard sbt help.
?
通过tree查看一下工程的目录结构。
?写道
E:\play\apps\myApp>tree
文件夹 PATH 列表
卷序列号为 0001-642E
E:.
├─app
│ ├─controllers
│ └─views
├─conf
├─project
│ ├─project
│ │ └─target
│ │ └─config-classes
│ └─target
│ ├─scala-2.9.1
│ │ └─sbt-0.11.2
│ │ ├─cache
│ │ │ ├─compile
│ │ │ └─update
│ │ └─classes
│ └─streams
│ ├─$global
│ │ ├─compilers
│ │ │ └─$global
│ │ ├─ivy-configuration
│ │ │ └─$global
│ │ ├─ivy-sbt
│ │ │ └─$global
│ │ ├─project-descriptors
│ │ │ └─$global
│ │ └─update
│ │ └─$global
│ └─compile
│ ├─$global
│ │ └─$global
│ ├─compile
│ │ └─$global
│ ├─compile-inputs
│ │ └─$global
│ ├─copy-resources
│ │ └─$global
│ └─defined-sbt-plugins
│ └─$global
├─public
│ ├─images
│ ├─javascripts
│ └─stylesheets
└─target
?
#解析Play2.0的应用程序
app目录包含所有的可执行的东西,比如Java和Scala的源代码
模板和编译过资源。app目录包含三个标准的包,分别对应MVC架构的三层模型。
它们分别是contollers、models和views。当然,你可以自己添加一些别的包。
例如utils等,
public目录下存的是静态资源。该目录下有三个子目录,分别是images、stylesheets和javaScript。
当然这些目录下放什么普通程序员都很清楚的。
conf目录包含了Play的配置文件,主要包括application.conf和routes.conf,前者是应用程序的主配置文件,
包含了标准的配置参数,后者是路由定义文件。如果你有额外的配置选项,那么可以把它加入到application.conf文件中,
或者在conf目录再创建一个.conf的文件。
lib目录是可选的,它包含所有的库依赖,例如所有的jar文件都可放在这个目录下。
project目录包含sbt建立的定义:包括plugins.sbt(定义项目中用到的sbt插件)、build.scala(定义项目构建的脚本)
target目录包含了系统构建而产生的所有东西,在这里可以看到到底构建项目时生成了什么,例如编译过程中产生的.class文件等等。