play的目录结构制作的相当精简,以下是从play官网截下的图片:
app → Application sources └ assets → Compiled asset sources └ stylesheets → Typically LESS CSS sources └ javascripts → Typically CoffeeScript sources └ controllers → Application controllers └ models → Application business layer └ views → Templates build.sbt → Application build script conf → Configurations files and other non-compiled resources (on classpath) └ application.conf → Main configuration file └ routes → Routes definition dist → Arbitrary files to be included in your projects distribution public → Public assets └ stylesheets → CSS files └ javascripts → Javascript files └ images → Image files project → sbt configuration files └ build.properties → Marker for sbt project └ plugins.sbt → sbt plugins including the declaration for Play itself lib → Unmanaged libraries dependencies logs → Logs folder └ application.log → Default log file target → Generated stuff └ resolution-cache → Info about dependencies └ scala-2.10 └ api → Generated API docs └ classes → Compiled class files └ routes → Sources generated from routes └ twirl → Sources generated from templates └ universal → Application packaging └ web → Compiled web assets test → source folder for unit or functional tests
app目录:
app目录是代码目录,包含了所有的Java或者Scala的源码,一般的“hello-world”sample程序都含有controllers、models、和views三个目录,分别对应MVC三层结构中的:C、M和V;我想这大家都和清楚,大家还可以根据自己的项目需要创建其他的目录,例如utils、dao等等。例如以下:
如果有需要,你还可以建一个名为“assets”的目录,里面可以放LESS或者CoffeeScript源文件。
注意:这些controllers、models和views等目录可以随着你项目的需要而改变,例如:你可以写成com.yourcompany.controllers、com.yourcompnay.model和com.yourcompany.views而不必非得写成controllers、models和views。
conf目录:
在这个目录里,放置的都是这个应用的一些配置文件信息,有两个主要的文件:
一个是application.conf:意思很明显,就是整个应用的配置信息,里面会有一些配置的参数。包括数据库链接中数据源的信息填写,日志打印的级别等信息等等,还可以自定义一些参数。
注意:在conf中,play默认定义的有:数据库信息、应用信息(名字、 Secret key、语言等)、日志;这三块儿的信息,在conf中直接改后,效果会在应用程序中直接出现。
假如你想一用conf中自定义的配置参数:例如上图中的阿里云相关的信息,你需要在application.conf中定义之后,在程序中使用
Play.configuration.getString("oss.access_id").getOrElse("diSnug5q4zb9y2mq")
来调用。实际上某人的那三块信息也是这么来调用的。
假如你在application.conf中不想定义过多的自定义信息,你也可以写一个自定义的conf文件,然后在application.conf中引用(include “fileName.conf”)如下:
routes:路由。非常重要的部分!使用方法非常简单,在这里定义你需要的rest接口,然后接口后面对应的处理函数。如下图:
public 的目录:
这里放置的都是前端页面相关的信息,例如js、css、json文件、图片等等。
这些目录文件的名字是可以改的,但是引用的时候需要注意目录名字。包括public的名字也是可以改的。前端页面中需要其中的静态文件的话,需要再routes中添加:
然后在前端需要静态文件的地方这么引用:
这里就是用的public目录下images目录中的静态文件。
lib目录:
如果之前你是做J2EE项目的,这个目录你一定清楚,这就是放置其他依赖包的地方。(当然如果Maven有依赖链接,尽量用Maven的依赖链接)
build.sbt file:
这个文件是整个项目添加依赖包的地方,所有的依赖都写在这里。如果你是J2EE开发者的话,你一定知道Maven的pom.xml文件,在这里,build.sbt文件就相当于pom.xml的文件。
project目录:
这个目录包含了sbt构建之后的东西:
1、pulgins.sbt:插件sbt
2、build.properties:包含了sbt的版本。
target目录:
target目录包含了应用编译之后的东西,就是编译后的可执行文件。