03.SpringBoot安装

Spring Boot 可以与”经典” Java 开发工具一起使用,也可以作为命令行工具安装。 无论哪种方式,您都需要 JDK1.8 或更高版本。 在开始之前,你应该使用以下命令检查你当前安装的JDK的版本:

1
$ java -version

Java开发人员的安装说明

您可以以与任何标准 Java 库相同的方式使用 Spring Boot。 所以,请在 classpath 中包含适当的 spring-boot-*.jar。 Spring Boot 不需要任何特殊的工具集成,因此您可以使用任何 IDE 或文本编辑器。 此外,Spring Boot 应用程序没有什么特别之处,您可以像运行其他 Java 程序一样运行和调试 Spring Boot 应用程序。

虽然可以拷贝 Spring Boot 的 jar 包,但我们通常建议您使用支持依赖项管理的构建工具(例如 Maven 或 Gradle)。

Maven 安装

Spring Boot 兼容 Apache Maven 3.3 或更高版本,如果你还没有安装 Maven,可以按照 maven.apache.org 的说明进行操作。

在许多操作系统上,Maven 可以通过一个包管理器进行安装。 如果你使用 OSX 自制程序,可以运行 brew install maven 指令。 Ubuntu 用户可以运行 sudo apt-get install maven 指令。 使用 Chocolatey 的 Windows 用户可以在 cmd 下运行 choco install maven

Spring Boot 依赖项使用 org.springframework.boot 作为 groupId。 通常,您的 Maven POM 文件继承自 spring-boot-starter-parent 项目,并声明对一个或多个 “Starters” 的依赖。 Spring Boot 还提供了一个可选的  Maven plugin 来创建可执行的 jar 文件。

下面是一个典型的 pom.xml 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>

<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>

<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

spring-boot-starter-parent 是使用 Spring Boot 的一个很好的方法,但它不可能在所有的时候都适用。 有时您可能需要从不同的父 POM 继承,或者您可能不喜欢我们的默认设置。 在这些情况下,请参阅第13.2.2节”在不使用父 POM 的情况下使用 Spring Boot”,以获得使用 import 范围的替代解决方案。

安装Spring Boot CLI

Spring Boot CLI (命令行接口)是一个命令行工具,您可以使用它来快速构建 Spring 的样例。 支持运行 Groovy 脚本,这代表你可以使用类似 Java 的语法,而不需要太多的样板代码。

您不需要使用 CLI 来处理 Spring Boot,但它绝对是获得 Spring 应用程序的最快方法。

手动安装

你可以从 Spring 软件资源库下载 Spring CLI 发行版:

也可以使用最新的快照版本(snapshot distributions )

下载完成后,请按照未打包的归档文件中的 INSTALL.txt 说明进行操作。 一般情况下,.zip 文件中有一个 bin 文件夹,在该文件夹下存放了一个 spring 脚本(spring.bat ,Windows平台下使用)。 或者,在遇到 .jar 时您可以使用 java -jar (该脚本可以帮助您确保classpath设置正确)。

安装 SDKMAN

SDKMAN!(The Software Development Kit Manager)能帮您管理各种版本的二进制 SDK,包括 Groovy 和 Spring Boot CLI。从 sdkman.io 可以获取 SDKMAN! ,然后运行以下命令来安装 Spring Boot:

1
2
3
$ sdk install springboot
$ spring --version
Spring Boot v2.1.5.RELEASE

如果您为 CLI 开发特性并希望方便地访问您构建的版本,请使用以下命令:

1
2
3
4
$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-2.1.5.RELEASE-bin/spring-2.1.5.RELEASE/
$ sdk default springboot dev
$ spring --version
Spring CLI v2.1.5.RELEASE

通过上面的指令安装一个 spring 的本地实例,称为 dev 实例。 它指向您的目标构建位置,因此每次重新构建 Spring Boot 时,Spring 都是最新的。

你可以通过运行以下命令来查看它:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sdk ls springboot

================================================================================
Available Springboot Versions
================================================================================
> + dev
* 2.1.5.RELEASE

================================================================================
+ - local version
* - installed
> - currently in use
================================================================================

OSX Homebrew安装

如果你在 Mac 电脑上使用 Homebrew,则可以使用以下指令安装 Spring Boot CLI:

1
2
$ brew tap pivotal/tap
$ brew install springboot

Homebrew 会将 Spring 安装到 /usr/local/bin 目录。

如果您没有看到该公式,您安装的 brew 可能已经过时了。 在这种情况下,运行 brew update, 然后再试一次。

MacPorts 安装

如果你在 Mac 上使用 MacPorts,你可以使用以下命令安装 Spring Boot CLI:

1
$ sudo port install spring-boot-cli

命令行补全

Spring Boot CLI 中包含了为 BASH 和 zsh 提供命令补全的脚本。 您可以在任何 shell 中 source 这些脚本(也称为 spring ) ,或者将其放入个人或系统范围的 bash 补全初始化中。 在 Debian 系统上,系统范围的脚本在 /shell-completion/bash 中,当新的 shell 启动时,该目录中的所有脚本都将执行。 例如,如果您已经使用 SDKMAN 安装了脚本,那么可以使用以下命令手动运行该脚本:

1
2
3
$ . ~/.sdkman/candidates/springboot/current/shell-completion/bash/spring
$ spring <HIT TAB HERE>
grab help jar run test version

如果你使用 Homebrew 或者 MacPorts 来安装 Spring Boot CLI,命令行补全脚本会自动注册到你的 shell 中。

快速启用 Spring CLI 示例

您可以使用以下 web 应用程序来测试您的安装是否成功。 首先,创建一个 app.groovy 文件,如下所示:

1
2
3
4
5
6
7
8
@RestController
class ThisWillActuallyRun {

@RequestMapping("/")
String home() {
"Hello World!"
}
}

然后以 shell 形式运行,如下所示:

1
$ spring run app.groovy

应用程序的第一次运行速度很慢,因为要下载依赖项。 后续的运行速度要快得多。

在浏览器中打开 localhost: 8080 ,您应该看到以下输出:

1
Hello World!

SpringBoot 版本升级

如果您正在从早期版本的 Spring Boot 升级,请查看项目 wiki 上的迁移指南,该指南提供了详细的升级说明。 还要检查发行说明以获得每个版本的新的和值得注意的特性列表。

当升级到新的特性版本时,一些属性可能已被重命名或删除。 Spring Boot 提供了一种在启动时分析应用程序环境和打印诊断信息的方法,而且还可以在运行时为您临时迁移属性。 要启用该特性,请在项目中添加以下依赖项:

1
2
3
4
5
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>

后期添加到环境中的属性(例如在使用 @PropertySource 时)将不会被考虑。

迁移完成后,请确保从项目的依赖项中删除此模块。

要升级已安装的 CLI ,请使用适当的包管理器命令(例如,brew upgrade) ,或者,如果您手动安装了 CLI,请按照标准说明进行升级,记住更新 PATH 环境变量以删除任何旧的引用。