5

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包括为BASHzsh 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环境变量以删除任何旧的引用。


上一篇:Spring Boot 介绍
下一篇:开发你的第一个 Spring Boot 应用程序

博弈
2.5k 声望1.5k 粉丝

态度决定一切