10. 安装 Spring Boot

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

$ java -version

如果您不熟悉 Java 开发,或者想尝试使用 Spring Boot,则可能要先尝试Spring Boot CLI(命令行界面)。否则,请 continue 阅读“经典”安装说明。

10.1 Java 开发人员的安装说明

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

尽管您可以复制 Spring Boot jar,但是我们通常建议您使用支持依赖项 Management 的构建工具(例如 Maven 或 Gradle)。

10.1.1 Maven 安装

Spring Boot 与 Apache Maven 3.3 或更高版本兼容。如果尚未安装 Maven,则可以按照maven.apache.org上的说明进行操作。

Tip

在许多 os 上,Maven 可以与程序包 Management 器一起安装。如果您使用 OSX Homebrew,请尝试brew install maven。 Ubuntu 用户可以运行sudo apt-get install maven。具有Chocolatey的 Windows 用户可以从提升的(Management 员)提示符下运行choco install maven

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

以下 Lists 显示了一个典型的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>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.1.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>

Tip

spring-boot-starter-parent是使用 Spring Boot 的好方法,但可能并不总是适合。有时您可能需要从其他父 POM 继承,或者您可能不喜欢我们的默认设置。在这些情况下,请参阅第 13.2.2 节“在没有父 POM 的情况下使用 Spring Boot”以获取使用import范围的替代解决方案。

10.1.2 安装 Gradle

Spring Boot 与 Gradle 4.4 及更高版本兼容。如果尚未安装 Gradle,则可以按照gradle.org上的说明进行操作。

可以使用org.springframework.boot group声明 Spring Boot 依赖项。通常,您的项目声明对一个或多个"Starters"的依赖关系。 Spring Boot 提供了一个有用的Gradle plugin,可用于简化依赖项声明并创建可执行 jar。

Gradle Wrapper

当您需要构建项目时,Gradle 包装器提供了一种“获取” Gradle 的好方法。这是一个小的脚本和库,您随代码一起提交以引导构建过程。有关详情,请参见docs.gradle.org/4.2.1/userguide/gradle_wrapper.html

有关 Spring Boot 和 Gradle Starter 的更多详细信息,可以在 Gradle 插件参考指南的Starter 部分中找到。

10.2 安装 Spring Boot CLI

Spring Boot CLI(命令行界面)是一个命令行工具,可用于快速使用 Spring 进行原型设计。它使您可以运行Groovy脚本,这意味着您具有类似 Java 的熟悉语法,而没有太多样板代码。

您无需使用 CLI 即可与 Spring Boot 配合使用,但这绝对是使 Spring 应用程序启动的最快方法。

10.2.1 手动安装

您可以从 Spring 软件存储库下载 Spring CLI 发行版:

最先进的snapshot distributions也可用。

下载完成后,请按照解压后的存档中的INSTALL.txt说明进行操作。总之,在.zip文件的bin/目录中有一个spring脚本(对于 Windows 是spring.bat)。或者,您可以将java -jar.jar文件一起使用(脚本可帮助您确保正确设置了 Classpath)。

10.2.2 使用 SDKMAN 安装!

SDKMAN! (软件开发工具包 Management 器)可用于 Management 各种二进制 SDK 的多个版本,包括 Groovy 和 Spring Boot CLI。获取 SDKMAN!从sdkman.io开始,并使用以下命令安装 Spring Boot:

$ sdk install springboot
$ spring --version
Spring Boot v2.1.1.RELEASE

如果您为 CLI 开发功能并希望轻松访问所构建的版本,请使用以下命令:

$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-2.1.1.RELEASE-bin/spring-2.1.1.RELEASE/
$ sdk default springboot dev
$ spring --version
Spring CLI v2.1.1.RELEASE

前面的说明将安装称为dev实例的spring本地实例。它指向您的目标构建位置,因此,每次重建 Spring Boot 时,spring都是最新的。

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

$ sdk ls springboot

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

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

10.2.3 OSX Homebrew 安装

如果您使用的是 Mac 并使用Homebrew,则可以使用以下命令安装 Spring Boot CLI:

$ brew tap pivotal/tap
$ brew install springboot

自制软件将spring安装到/usr/local/bin

Note

如果看不到该公式,则说明 brew 的安装可能已过期。在这种情况下,请运行brew update,然后重试。

10.2.4 MacPorts 安装

如果您使用的是 Mac 并使用MacPorts,则可以使用以下命令安装 Spring Boot CLI:

$ sudo port install spring-boot-cli

10.2.5 命令行完成

Spring Boot CLI 包括为BASHzsh Shell 提供命令完成的脚本。您可以在任何 shell 中source脚本(也称为spring)或将其放入个人或系统范围的 bash 完成初始化中。在 Debian 系统上,系统级脚本位于/shell-completion/bash中,并且在启动新 Shell 时将执行该目录中的所有脚本。例如,如果您是使用 SDKMAN!安装的,则要手动运行脚本,请使用以下命令:

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

Note

如果您使用 Homebrew 或 MacPorts 安装 Spring Boot CLI,则命令行完成脚本会自动注册到您的 Shell 中。

10.2.6 Windows Scoop 安装

如果您使用的是 Windows 并使用Scoop,则可以使用以下命令安装 Spring Boot CLI:

> scoop bucket add extras
> scoop install springboot

Scoop 将spring安装到~/scoop/apps/springboot/current/bin

Note

如果您没有看到应用 Lists,则可能是因为瓢的安装已过期。在这种情况下,请运行scoop update,然后重试。

10.2.7 快速 Starter Spring CLI 示例

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

@RestController
class ThisWillActuallyRun {

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

}

然后从 Shell 运行它,如下所示:

$ spring run app.groovy

Note

因为需要下载依赖项,因此您的应用程序的第一次运行很慢。随后的运行要快得多。

在您喜欢的网络浏览器中打开localhost:8080。您应该看到以下输出:

Hello World!

10.3 从早期版本的 Spring Boot 升级

如果您要从较早版本的 Spring Boot 升级,请检查项目 Wiki 上的“迁移指南”,其中提供了详细的升级说明。还要在"release notes"上查看每个版本的“新功能和值得注意的”功能列表。

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

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-properties-migrator</artifactId>
	<scope>runtime</scope>
</dependency>

Warning

较晚添加到环境的属性(例如使用@PropertySource时)将不被考虑。

Note

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

要升级现有的 CLI 安装,请使用适当的程序包 Management 器命令(例如brew upgrade),或者,如果手动安装了 CLI,请遵循standard instructions,记住要更新PATH环境变量以删除任何较旧的引用。