# 10\. 安裝 Spring Boot
Spring Boot可以與“經典(classic)”Java開發工具一起使用或作為命令行工具安裝。 無論如何,您將需要[Java SDK v1.6](http://www.java.com/)或更高版本。 在開始之前檢查當前的Java安裝:
```
$ java -version
```
如果您是Java開發的新手,或者您只想嘗試一下 Spring Boot,您可能需要首先嘗試使用?[Spring Boot CLI](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#getting-started-installing-the-cli),如果想正式使用Spring Boot,請閱讀“經典(classic)”安裝說明。
雖然Spring Boot 與Java 1.6兼容,但我們建議使用最新版本的Java。
### 10.1 針對Java開發程序員安裝說明
Spring Boot的使用方式與標準Java庫的使用相同,只需在類路徑中包含適當的spring-boot-*.jar文件。Spring Boot不需要任何特殊的集成工具,所以可以使用任何IDE或文本編輯器進行開發;并且Spring Boot 應用程序沒有什么特殊的地方,因此您可以像其他Java程序一樣運行和調試。雖然您可以直接復制Spring Boot 的jar包,但我們通常建議您使用依賴關系管理的構建工具(如Maven或Gradle)。
#### 10.1.1 Maven安裝
Spring Boot 兼容 Apache Maven 3.2。 如果您還沒有安裝Maven,可以按照?[https://maven.apache.org/](https://maven.apache.org/)?上的說明進行安裝。
在許多操作系統上,Maven可以通過軟件包管理器進行安裝。 如果您是OSX Homebrew用戶,請嘗試使用命令:brew install maven。 Ubuntu用戶可以運行命令:sudo apt-get install maven。
Spring Boot 依賴 org.springframework.boot groupId。通常,您的Maven POM文件將從 spring-boot-starter-parent 項目繼承,并聲明一個或多個“啟動器(啟動器)”的依賴關系。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>1.5.2.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”](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#using-boot-maven-without-a-parent)作為使用導入作用域(import scope)的替代解決方案。
#### 10.1.2 Gradle 安裝
Spring Boot 兼容 Gradle 2(2.9或更高版本)和Gradle 3。如果您尚未安裝Gradle,您可以按照?[http://www.gradle.org/](http://www.gradle.org/)?上的說明進行操作。
可以使用org.springframework.boot 組(group)聲明Spring Boot 的依賴項。 通常,您的項目將聲明一個或多個“啟動器(Starters)”的依賴。Spring Boot提供了一個有用的Gradle插件,可用于簡化依賴關系聲明和創建可執行 jar包。
Gradle Wrapper
當您需要構建項目時,Gradle Wrapper提供了一種“獲取(obtaining)”Gradle的更好的方式。 它是一個小腳本和庫,它與代碼一起引導構建過程。 有關詳細信息,請參閱[https://docs.gradle.org/2.14.1/userguide/gradle_wrapper.html](https://docs.gradle.org/2.14.1/userguide/gradle_wrapper.html)?。
典型的 build.gradle 文件:
```
plugins {
id 'org.springframework.boot' version '1.5.2.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快速原型(quickly prototype),可以使用它。 它允許您運行Groovy腳本,這意味著會有您熟悉的類似Java的語法,沒有太多的樣板代碼(boilerplate code)。
您也不必要通過CLI來使用Spring Boot,但它絕對是開始Spring應用程序最快方法。
#### 10.2.1 手動安裝
您可以從Spring軟件版本庫下載Spring CLI發行版:
* [spring-boot-cli-1.5.2.RELEASE-bin.zip](http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.5.2.RELEASE/spring-boot-cli-1.5.2.RELEASE-bin.zip)
* [spring-boot-cli-1.5.2.RELEASE-bin.tar.gz](http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.5.2.RELEASE/spring-boot-cli-1.5.2.RELEASE-bin.tar.gz)
各發[布版本的快照](http://repo.spring.io/snapshot/org/springframework/boot/spring-boot-cli/)。
下載完成后,請按照解壓縮后文件中的[INSTALL.txt](https://raw.github.com/spring-projects/spring-boot/v1.5.2.RELEASE/spring-boot-cli/src/main/content/INSTALL.txt)的說明進行操作。 總而言之:在.zip文件的bin/目錄中有一個spring腳本(Windows的spring.bat),或者你可以使用java -jar(腳本可以幫助您確保類路徑設置正確)。
#### 10.2.2 使用SDKMAN!安裝
SDKMAN!(軟件開發套件管理器)可用于管理各種二進制SDK的多個版本,包括Groovy和Spring Boot CLI。從[http://sdkman.io/](http://sdkman.io/) 獲取SDKMAN!并安裝Spring Boot。
```
$ sdk install springboot
$ spring --version
Spring Boot v1.5.2.RELEASE
```
如果您正在開發CLI的功能,并希望輕松訪問剛創建的版本,請遵循以下額外說明。
```
$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-1.5.2.RELEASE-bin/spring-1.5.2.RELEASE/
$ sdk default springboot dev
$ spring --version
Spring CLI v1.5.2.RELEASE
```
這將安裝一個稱為dev的spring的本地實例(instance)。 它指向您構建位置的target,所以每次重建(rebuild)Spring Boot時,Spring 將是最新的。
你可以看到:
```
$ sdk ls springboot
================================================================================
Available Springboot Versions
================================================================================
> + dev
* 1.5.2.RELEASE
================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
```
#### 10.2.3 OSX Homebrew 安裝
如果您在Mac上使用?[Homebrew](http://brew.sh/),安裝Spring Boot CLI 只需要下面命令:
```
$ brew tap pivotal/tap
$ brew install springboot
```
Homebrew會將Spring 安裝到 /usr/local/bin。
> 如果您沒有看到公式(formula),您的安裝可能會過期。 只需執行brew更新,然后重試。
#### 10.2.4 MacPorts安裝
如果您在Mac上使用?[MacPorts](https://www.macports.org/),安裝Spring Boot CLI 只需要下面命令:
```
$ sudo port install spring-boot-cli
```
#### 10.2.5 命令行提示
Spring Boot CLI為BASH和zsh shell提供命令提示的功能。 您可以在任何shell中引用腳本(也稱為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
```
> 如果使用Homebrew或MacPorts安裝Spring Boot CLI,則命令行補全腳本將自動注冊到您的shell。
#### 10.2.6 快速啟動Spring CLI示例
這是一個非常簡單的Web應用程序,可用于測試您的安裝是否正確。 創建一個名為app.groovy的文件:
```
@RestController
class ThisWillActuallyRun {
@RequestMapping("/")
String home() {
"Hello World!"
}
}
```
然后從shell運行它:
```
$ spring run app.groovy
```
因為下載依賴的庫,首次運行應用程序需要一些時間,。 后續運行將會更快。
在瀏覽器中打開?[http://localhost:8080](http://localhost:8080/)?,您應該會看到以下輸出:
```
Hello World!
```
### 10.3 從早期版本的Spring Boot升級
如果您從早期版本的 Spring Boot 升級,請檢查[項目wiki](https://github.com/spring-projects/spring-boot/wiki)上托管的“發行說明”。 您將找到升級說明以及每個版本的“新的和值得注意的”功能的列表。
要升級現有的CLI安裝,請使用包管理工具相應的package manager命令(例如brew upgrade),如果您手動安裝了CLI,請按照[標準說明](http://docs.spring.io/spring-boot/docs/1.5.2.RELEASE/reference/htmlsingle/#getting-started-manual-cli-installation)記住更新PATH環境變量以刪除任何舊的引用。
- Part I. Spring Boot 文檔
- Part II. 入門指南
- 8. Spring Boot 介紹
- 9. 系統要求
- 10. 安裝 Spring Boot
- 11. 開發您的第一個Spring Boot應用程序
- 12. 接下來應該讀什么
- Part III. 使用 Spring Boot
- 13. 構建系統
- 14. 構建代碼
- 15. 配置類
- 16. 自動配置
- 17. Spring Beans 和 依賴注入
- 18. 使用@SpringBootApplication注解
- 19. 運行你的應用程序
- 20. 開發工具
- 21. 包裝您的應用程序到生產環境
- 22. 接下來應該讀什么
- Part IV. Spring Boot 功能
- 23. SpringApplication
- 24. 外部配置
- 25. 配置文件(Profiles)
- 26. 日志
- 27. 開發Web應用程序
- 28. Security
- 29. 使用SQL數據庫