10. 安装Spring Boot
Spring Boot可以与“经典”Java开发工具一起使用,也可以作为命令行工具安装。无论哪种方式,都需要Java SDK v1.8或更高版本。在开始之前,你应该使用以下命令检查当前的Java安装:
$ java -version
如果你是Java开发新手,或者你想尝试使用Spring Boot,那么你可能想先尝试一下Spring Boot CLI(命令行接口)。否则,请继续阅读“经典”安装说明。
10.1 Java开发人员的安装说明
你可以使用与任何标准Java库相同的方式使用Spring Boot,为此,在类路径上包括适当的spring-boot-*.jar
文件。Spring Boot不需要任何特殊的工具集成,因此你可以使用任何IDE或文本编辑器。另外,Spring Boot应用程序没有什么特别之处,因此你可以像其他Java程序一样运行和调试Spring Boot 应用程序。
尽管你可以复制Spring Boot jar,但是我们通常建议你使用一个支持依赖管理的构建工具(比如Maven或Gradle)。
10.1.1 Maven 安装
Spring Boot与Apache Maven 3.2或以上兼容,如果你没有安装Maven,则可以按照maven.apache.org的指示执行。
在许多操作系统中,可以使用安装包安装Maven。如果你使用OSX Homebrew,尝试
brew install maven
,Ubuntu用户可以运行
sudo apt-get install maven
。使用
Chocolatey的Windows用户可以从一个高级(管理员)提示符中运行
choco install maven
。
Spring boot依赖使用org.springframework.boot
groupId
,通常Maven POM文件从spring-boot-starter-parent
项目继承,并向一个或多个“starter”声明依赖关系,Spring Boot还提供了一个可选的Maven插件来创建可执行的jar。
下面的清单显示了一个典型的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.0.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
范围的替代解决方案。
10.1.2 Gradle安装
Spring Boot与Gradle 4兼容,如果你还没有安装Gradle,你可以按照gradle.org上的说明进行操作。
Spring Boot依赖项可以通过使用org.springframework.boot
group
来声明。通常,你的项目声明依赖于一个或多个“Starters”,Spring Boot提供了一个有用的Gradle插件,它可以用来简化依赖项声明并创建可执行的jar。
Gradle Wrapper
当你需要构建一个项目时,Gradle Wrapper提供了一种“获取”Gradle的好方法。它是一个小脚本和库,你可以将其与代码一起提交以引导构建过程。有关详细信息,请参阅docs.gradle.org/4.2.1/userguide/gradle_wrapper.html。
下面的示例展示了一个典型的build.gradle
文件:
plugins {
id 'org.springframework.boot' version '2.0.5.RELEASE'
id 'java'
}
jar {
baseName = 'myproject'
version = '0.0.1-SNAPSHOT'
}
repositories {
jcenter()
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile("org.springframework.boot:spring-boot-starter-test")
}
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
文件(脚本可以帮助你确定类路径是否正确设置)。
10.2.2 使用SDKMAN!安装
SDKMAN!(软件开发工具包管理器)可以用于管理各种二进制SDK的多个版本,包括Groovy和Spring Boot CLI。从sdkman.io获取SDKMAN!,安装Spring Boot使用以下命令:
$ sdk install springboot
$ spring --version
Spring Boot v2.0.5.RELEASE
如果你为CLI开发了特性,并希望轻松访问你构建的版本,请使用以下命令:
$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-2.0.5.RELEASE-bin/spring-2.0.5.RELEASE/
$ sdk default springboot dev
$ spring --version
Spring CLI v2.0.5.RELEASE
前面的指令安装了一个spring
名为dev
实例的本地实例。它指向你的目标构建位置,因此每当你重新构建Spring Boot时,spring
都是最新的。
你可以通过运行以下命令来查看:
$ sdk ls springboot
================================================================================
Available Springboot Versions
================================================================================
> + dev
* 2.0.5.RELEASE
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
10.2.3 OSX Homebrew安装
如果你在Mac上使用Homebrew,你可以使用以下命令来安装Spring Boot CLI:
$ brew tap pivotal/tap
$ brew install springboot
Homebrew安装spring
到/usr/local/bin
目录下。
如果没有看到公式,brew的安装可能已经过时,在这种情况下,运行
brew update
并再次尝试。
10.2.4 MacPorts安装
如果你在Mac上并使用MacPorts,你可以使用以下命令来安装Spring Boot CLI:
$ sudo port install spring-boot-cli
10.2.5 命令行实现
Spring Boot CLI包括为BASH和zsh shell提供命令实现的脚本,你可以在任何shell中source
脚本(也称为spring
),或者将其放入你的个人或系统范围的bash实现初始化中。在Debian系统中,系统范围的脚本在/shell-completeion/bash
中,在新shell启动时将执行该目录中的所有脚本。例如,如果你已经安装了SDKMAN!,就可以手动运行脚本,使用以下命令:
$ . ~/.sdkman/candidates/springboot/current/shell-completion/bash/spring
$ spring <HIT TAB HERE>
grab help jar run test version
如果你使用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
。
10.2.7 快速启动Spring CLI的例子
你可以使用以下web应用程序来测试你的安装,首先,创建一个名为app.groovy
的文件,如下所示:
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
然后从shell运行它,如下:
$ spring run app.groovy
应用程序第一次运行速度很慢,因为依赖项被下载,后续的运行要快得多。
在你最喜欢的web浏览器中打开localhost:8080,你应该会看到以下输出:
Hello World!
10.3 从Spring Boot的早期版本升级
如果你正在从更早的Spring Boot版本升级,请检查项目wiki上提供详细的升级说明的“迁移指南”,还要检查“发布说明”,以获得每个版本的“新的和需要注意的”特性。
当升级到新特性版本时,一些属性可能已经被重命名或删除,Spring Boot提供了一种在启动时分析应用程序环境和打印诊断信息的方法,还为你在运行时临时迁移属性,要启用该特性,请向项目添加以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-properties-migrator</artifactId>
<scope>runtime</scope>
</dependency>
在环境中添加较晚的属性(比如在使用@PropertySource时)将不被考虑。
完成迁移后,请确保将此模块从项目的依赖项中删除。
要升级现有的CLI安装,请使用适当的包管理器命令(例如,brew upgrade
),或者,如果你手动安装CLI,请遵循标准说明,记住更新PATH
环境变量以删除任何旧的引用。