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文件等等。


你可能感兴趣的:(java,scala,play framework)