Play2 for Java(二:开始)

2. Module2 开始

从本模块开始,我们开始学习Play。我们会从Play2官网下载最新的Play,并配置环境变量,并使用命令行来生成一个基础的Play应用

2.1 下载最新的Play

Play从2.3版本开始就不支持play命令行的方式了,我们采用官方SBT方式来开始我们的Play之旅。
首先,java版本必须是1.8的。
然后呢,官方目前提供了很多的demo,都含有一个叫做./sbt和sbt.bat的启动器的启动器,可以用于Unix和Windows系统,即使你不预先安装SBT,它也是可以帮你下载所需的项目依赖包。
当然学习的目的就是要比别人多会一点,我们还是下载SBT。

这里写图片描述

msi的安装应该是很简单的~

Step:1

这里写图片描述

Step2:

这里写图片描述

Step3:

这里写图片描述

Step4:

这里写图片描述

Step5:环境变量(配置path的我就省了,基本跟喂嘴里没啥区别了吧)

这里写图片描述

Step6:下面开始以模板形式创建我们的Play引用
sbt new playframework/play-java-seed.g8
命令行执行如上的命令,不需要进入sbt console,直接运行即可,然后参考下面的来做,就是一步一步的带你进行:

这里写图片描述

Step7:run
method 1:
cd play.enjoy
sbt
[play-enjoy] $ run
//下面是拓展
[play-enjoy] $ compile  编译
[play-enjoy] $ test     执行测试

method 2:
sbt run

这里写图片描述

访问localhost:9000即可。

play是具有热部署的功能的.(Google浏览器一直502,没办法只能用火狐截的图,上述的两种run方法,我建议用第一种,它会检测你的build文件,并为你下载完整的包。第二种虽然也会下载依赖包,但是有时会出问题)

2.2 IDE

我用的是IDEA,其实比较方便:
Step1:

这里写图片描述

Step2:

这里写图片描述

Step3:

这里写图片描述

2.3 工程结构

如果您使用过任何常见的MVC材料、框架和其他语言,比如ASP.NET MVC或Ruby on Rails,以及Spring MVC,你可能会发现一个Play!应用程序的结构相当熟悉。

这里写图片描述

工程结构中的关键文件夹是app文件夹、conf文件夹、project文件夹、public文件夹和test文件夹。该结构在应用程序的不同方面提供了清晰的分离。

app文件夹是存储应用程序源代码的主要位置。因此,控制器(controller)、视图(View)和模型(Model)代码通常都存在于这个文件夹中。我们刚刚生成的应用程序已经遵循我们约定,为我们生成了controller和view文件夹(也可以说是package)。虽然不需要强制的遵循这个模式,但是有一些约定,尽管它们是可配置的,这些约定它们依赖于一个特定的文件夹结构,为了打破常规的约定,那么您必须改变它。

conf文件夹负责持有与应用程序的配置相关的非源文件。这包括重要的application.conf文件,以及应用程序的默认或者主要的配置数据的来源。它还包含路由文件,它是应用程序的所有路由或端点的中心定义,以及它们所需的参数(你可以类似的想象为Spring MVC中的@RequestMapping)。

project文件夹包含用于定义构建和运行应用程序所需的项目和配置的文件。您会注意到构建文件实际上是一个Scala文件。这是因为底层构建系统是SBT;这个简单的构建工具使用Scala和类似于Scala的DSL来构建定义。现在,我们应该忘记这些文件实际上是Scala,忽略了可能出现的问题。我们将把它当作一个特殊的DSL来配置项目构建。

public文件夹是一个包含应用程序锁想要的所有静态资产,例如图像、javascript和CSS的文件夹。生成的项目骨架生成了若干带有资产的文件夹。值得注意的是,这个约定不需要遵循,而文件夹和文件可以根据您的个人喜好更改。

最后,是test文件夹。test文件夹是创建在应用程序的演进过程中创建的任何测试用例的默认保存位置。这些可以从单元测试到验收测试。这个文件夹还可以包含您可能需要的任何测试特定资源。同样,这个约定是可配置的。

2.4 配置

application.conf是应用程序最主要的配置文件。我们所生成的项目的配置文件,通过注解的方式指导你如何调整更常见的基于常规的配置。

我们可以在配置文件中配置一下全局变量(使用Spring的应该知道@Value的作用吧,一样的),然后在我们的代码中,就可以通过Play的帮助方法,获取到我们所配置的值。

2.5 错误处理(Error Handler)

这里写图片描述

这里写图片描述

这里写图片描述
这是你在使用Play!时遇到的另一个重要概念是描述性的错误处理。当Play!报告错误时,它尝试尽可能地描述错误。

这里写图片描述

这里写图片描述

我们在上面列出了正确的执行结果页面,那么现在假如,如果我们故意在route中创建一个错误的状态,我们将在编译阶段得到错误通知。或者如果应用程序已经运行,这时我们修改route,那么Play!将将通过一个HTML的错误页面通知我们。

在这门课的route模块中,我们将看到为什么会发生这样的事情,但是现在已经足够了解Play!提供的错误检查和类型安全不仅在常见的controller、model和service有用,而且在容易出现拼写错误或者类似问题的地方,比如route和view。

PS:下面Play!的依赖会很慢,准备好梯子,最好在网速比较好的情况下开始
请原谅我用的Scala版本~~

猜你喜欢

转载自blog.csdn.net/qq_31179577/article/details/78723332
今日推荐