9. 附录
本文将介绍如何在 Windows 7 或 8 系统上安装本文档中使用的工具。
9.1. 安装 JDK
最新版本的 JDK 可通过以下网址获取:[http://www.oracle.com/technetwork/java/javase/downloads/index.html](2014 年 10 月)。下文将把 JDK 安装文件夹简称为 <jdk-install>。
![]() |
9.2. 安装 Maven
Maven 是一款用于管理 Java 项目依赖关系及其他功能的工具。您可以在 [http://maven.apache.org/download.cgi] 获取它。
![]() |
下载并解压压缩包。我们将 Maven 安装目录称为 <maven-install>。
![]() |
- 在 [1] 中,文件 [conf/settings.xml] 用于配置 Maven;
其中包含以下内容:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
第 4 行中的默认值,如果像我一样,你的 {user.home} 路径中包含空格(例如 [C:\Users\Serge Tahé]),可能会导致某些软件(包括 IntelliJ IDEA)出现问题。此时,你应该这样写:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>D:\Programs\devjava\maven\.m2\repository</localRepository>
并且在第 7 行,请避免使用包含空格的路径。
9.3. 安装 STS(Spring Tool Suite)
我们将安装 SpringSource Tool Suite [http://www.springsource.com/developer/sts],这是一个预配置了大量与 Spring 框架相关插件的 Eclipse 环境,并且已预装了 Maven 配置。
![]() |
- 请访问 SpringSource Tool Suite (STS) 网站 [1],下载 STS 的最新版本 [2A] [2B]。
![]() |
![]() |
- 下载的文件是一个安装程序,它会创建文件目录结构 [3A] [3B]。在 [4] 中,我们启动可执行文件,
- 在[5]中,关闭欢迎窗口后显示的IDE工作区窗口。在[6]中,显示应用服务器窗口,
![]() |
- 在 [7] 中,显示服务器窗口。已注册一台服务器。这是一台兼容 Tomcat 的 VMware 服务器。
您必须向 STS 指定 Maven 的安装目录:
![]() |
- 在 [1-2] 中,配置 STS;
- 在 [3-4] 中,添加一个新的 Maven 安装;
![]() |
- 在 [5] 中,指定 Maven 安装目录;
- 在 [6] 中,完成向导;
- 在 [7] 中,将新安装的 Maven 设为默认;
![]() |
- 在 [8-9] 中,验证本地 Maven 仓库——即用于存储下载的依赖项以及 STS 放置构建成果的文件夹;
9.4. 安装 Tomcat 服务器
Tomcat 服务器可在 URL [http://tomcat.apache.org/download-80.cgi] 获取。本文中的示例已在版本 8.0.9 上经过测试,该版本可在 URL [http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.9/bin/] 获取。
![]() |
请下载 [1] 适合您工作站的 ZIP 文件。解压后,您将看到如下目录结构 [2]。完成上述操作后,即可将此服务器添加到 STS 服务器中:
![]() |
- 在 [1-3] 中,在 STS 中添加一个新服务器;(要打开“服务器”窗口,请依次选择“窗口”/“显示视图”/“其他”/“服务器”/“服务器”);
![]() |
- 在 [5] 中,选择一个 Tomcat 8 服务器;
- 在 [6] 中,为该服务器命名;
- 在 [8] 中,指定先前下载的 Tomcat 的安装目录;
- 在 [9] 中,选择新服务器;
![]() |
- 在[11-12]中,启动Tomcat 8服务器;
- 在 [13-14] 中,其日志窗口;
- 在 [15] 中,停止服务器;
9.5. 安装 [WampServer]
[WampServer]即 ,这是一款用于在Windows系统上使用PHP、MySQL和Apache进行开发的软件套件。我们将仅将其用于MySQL数据库管理系统。
![]() |
- 在 [WampServer] 网站 [1] 上,选择合适的版本 [2]。
- 下载的可执行文件是一个安装程序。安装过程中会要求提供各种信息。这些信息与 MySQL 无关,因此您可以忽略它们。安装结束时会出现窗口 [3]。启动 [WampServer],
![]() |
- 在 [4] 中,[WampServer] 图标会出现在屏幕右下角的任务栏中 [4],
- 点击它后,会出现 [5] 菜单。该菜单允许您管理 Apache 服务器和 MySQL 数据库管理系统。要管理后者,请使用 [PhpMyAdmin] 选项,
- 这将打开如下所示的窗口,

本文将简要介绍 [PhpMyAdmin] 的使用方法。如有需要,文档中提供了相关信息。
9.6. 安装 Chrome 插件 [Advanced Rest Client]
本文档使用谷歌的 Chrome 浏览器(http://www.google.fr/intl/fr/chrome/browser/)。我们将为其添加 [Advanced Rest Client] 扩展程序。操作步骤如下:
- 使用 Chrome 浏览器访问 [Google 应用商店] (https://chrome.google.com/webstore);
- 搜索 [Advanced Rest Client] 应用:
![]() |
- 随后即可下载该应用:
![]() |
- 要获取该应用,您需要创建一个 Google 账户。随后 [Google 应用商店] 会要求您进行确认 [1]:
![]() |
- 在[2]处,已添加的扩展程序可在[应用程序]选项[3]中找到。该选项会显示在您通过浏览器(CTRL-T)新建的每个新标签页中。
9.7. Java 中的 JSON 管理
对开发者而言,[Spring MVC] 框架会透明地使用 [Jackson] JSON 库。为说明 JSON(JavaScript 对象表示法)的含义,我们在此展示一个程序,该程序将对象序列化为 JSON,并通过反序列化生成的 JSON 字符串来重建原始对象。
“Jackson”库允许您构建:
- 对象的 JSON 字符串:new ObjectMapper().writeValueAsString(object);
- 从 JSON 字符串创建对象:new ObjectMapper().readValue(jsonString, Object.class).
这两种方法都可能抛出 IOException。以下是一个示例。
![]() |
上述项目是一个 Maven 项目,其 [pom.xml] 文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>istia.st.pam</groupId>
<artifactId>json</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.3</version>
</dependency>
</dependencies>
</project>
- 第 12–16 行:引入 'Jackson' 库的依赖项;
[Person] 类如下:
package istia.st.json;
public class Personne {
// data
private String nom;
private String prenom;
private int age;
// manufacturers
public Personne() {
}
public Personne(String nom, String prénom, int âge) {
this.nom = nom;
this.prenom = prénom;
this.age = âge;
}
// signature
public String toString() {
return String.format("Personne[%s, %s, %d]", nom, prenom, age);
}
// getters and setters
...
}
[Main] 类如下所示:
package istia.st.json;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Main {
// the serialization / deserialization tool
static ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws IOException {
// creation of a person
Personne paul = new Personne("Denis", "Paul", 40);
// display jSON
String json = mapper.writeValueAsString(paul);
System.out.println("Json=" + json);
// person instantiation from Json
Personne p = mapper.readValue(json, Personne.class);
// person display
System.out.println("Personne=" + p);
// a picture
Personne virginie = new Personne("Radot", "Virginie", 20);
Personne[] personnes = new Personne[]{paul, virginie};
// json display
json = mapper.writeValueAsString(personnes);
System.out.println("Json personnes=" + json);
// dictionary
Map<String, Personne> hpersonnes = new HashMap<String, Personne>();
hpersonnes.put("1", paul);
hpersonnes.put("2", virginie);
// json display
json = mapper.writeValueAsString(hpersonnes);
System.out.println("Json hpersonnes=" + json);
}
}
执行此类将产生以下屏幕输出:
示例要点:
- 用于 JSON/对象转换所需的 [ObjectMapper] 对象:第 11 行;
- [Person] 到 JSON 的转换:第 17 行;
- JSON 转 [Person] 的转换:第 20 行;
- 两个方法均抛出的 [IOException]:第 13 行。
9.8. 安装 [WebStorm]
[WebStorm] (WS) 是 JetBrains 开发 HTML/CSS/JS 应用程序的集成开发环境 (IDE)。我发现它非常适合开发 Angular 应用程序。下载地址为 [http://www.jetbrains.com/webstorm/download/]。这是一款付费 IDE,但提供 30 天的试用版供下载。此外还有价格实惠的个人版和学生版。
为了在应用程序中安装 JS 库,WS 使用了一个名为 [Bower] 的工具。该工具是 [Node.js] 的一个模块,而 Node.js 是一组 JS 库的集合。此外,JS 库是从 Git 仓库中获取的,因此需要在执行下载的机器上安装 Git 客户端。
9.8.1. 安装 [node.js]
[Node.js] 的下载地址为 [http://nodejs.org/]。下载安装程序并运行即可。目前只需完成这一步。
9.8.2. 安装 [bower] 工具
[bower] 工具可用于下载 JavaScript 库,有多种安装方式。我们将通过命令行进行安装:
C:\Users\Serge Tahé>npm install -g bower
C:\Users\Serge Tahé\AppData\Roaming\npm\bower -> C:\Users\Serge Tahé\AppData\Roaming\npm\node_modules\bower\bin\bower
bower@1.3.7 C:\Users\Serge Tahé\AppData\Roaming\npm\node_modules\bower
├── stringify-object@0.2.1
├── is-root@0.1.0
├── junk@0.3.0
...
├── insight@0.3.1 (object-assign@0.1.2, async@0.2.10, lodash.debounce@2.4.1, req
uest@2.27.0, configstore@0.2.3, inquirer@0.4.1)
├── mout@0.9.1
└── inquirer@0.5.1 (readline2@0.1.0, mute-stream@0.0.4, through@2.3.4, async@0.8
.0, lodash@2.4.1, cli-color@0.3.2)
- 第 1 行:用于安装 [bower] 模块的 [node.js] 命令。要使该命令生效,[npm] 可执行文件必须位于计算机的 PATH 环境变量中(参见下文);
9.8.3. 安装 [Git]
Git 是一个软件版本控制系统。有一个名为 [msysgit] 的 Windows 版本,可在 URL [http://msysgit.github.io/] 获取。我们不会使用 [msysgit] 来管理应用程序的版本,而是仅用于下载 [https://github.com] 等网站上的 JS 库,这些库需要 [msysgit] 客户端提供的特殊访问协议
安装向导包含以下几个步骤:
![]() | ![]() |
对于其余的安装步骤,您可以接受系统提供的默认值。
Git 安装完成后,请确认其可执行文件已添加到计算机的 PATH 环境变量中:[控制面板 / 系统和安全 / 系统 / 高级系统设置]:
![]() | ![]() |
PATH 变量如下所示:
D:\Programs\devjava\java\jdk1.7.0\bin;D:\Programs\ActivePerl\Perl64\site\bin;D:\Programs\ActivePerl\Perl64\bin;D:\Programs\sgbd\OracleXE\app\oracle\product\11.2.0\client;D:\Programs\sgbd\OracleXE\app\oracle\product\11.2.0\client\bin;D:\Programs\sgbd\OracleXE\app\oracle\product\11.2.0\server\bin;...;D:\Programs\javascript\node.js\;D:\Programs\utilitaires\Git\cmd
请确认:
- [node.js] 安装文件夹的路径是否存在(此处为 D:\Programs\javascript\node.js);
- Git 客户端可执行文件的路径是否存在(此处为 D:\Program Files\Utilities\Git\cmd);
9.8.4. 配置 [WebStorm]
![]() | ![]() |
![]() |
在上图中,选择选项 [1]。已安装的 [node.js] 模块列表将显示在 [2] 中。如果您按照之前的安装步骤操作,该列表中应仅包含 [bower] 模块的 [3] 行。
9.9. 安装 Android 模拟器
Android SDK 随附的模拟器运行缓慢,因此不建议使用。公司 [Genymotion] 提供了一款功能更强大的模拟器。可通过以下网址获取:[https://cloud.genymotion.com/page/launchpad/download/]
(2014年2月)。
您需要注册才能获取个人版。请下载包含 VirtualBox 虚拟机的 [Genymotion] 产品;

安装并启动 [Genymotion]。接下来,下载平板电脑或手机的镜像:
![]() |
- 在 [1] 中,添加一个虚拟设备;
- 在 [2] 中,选择一个或多个设备进行安装。您可以通过指定所需的 Android 版本 [3] 和设备型号 [4] 来筛选显示的列表;
![]() |
- 下载完成后,您将在 [5] 处看到可用于测试 Android 应用的虚拟设备列表;




























