Spring Boot 2.0.0參考手冊(cè)_中文版_Part II_8-10

文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡(jiǎn)書

Part II 開始

如果你剛開始學(xué)習(xí)Spring Boot或通常所說的Spring,這部分就是為你準(zhǔn)備的!這部分中我們回答了基本的"what?","how","why?"問題,并在安裝說明中介紹Spring Boot。我們將構(gòu)建第一個(gè)Spring Boot應(yīng)用,討論一些我們遵循的核心原則。

8. Spring Boot介紹

Spring Boot 使創(chuàng)建獨(dú)立的、產(chǎn)品級(jí)的、基于Spring的應(yīng)用變得更容易,你只需要運(yùn)行run即可。我們采用不變的Spring平臺(tái)和第三方庫,因此你可以幾乎無差別的使用Spring Boot。大多數(shù)Spring Boot應(yīng)用只需要很少的Spring配置。

你可以使用Spring Boot創(chuàng)建Java應(yīng)用,用java-jar或更傳統(tǒng)的war包來部署應(yīng)用。我們也提供了運(yùn)行"Spring腳本"的命令行工具。

我們的主要目標(biāo)是:

  • 為所有Spring開發(fā)者提供一個(gè)從根本上更迅速可用的入門經(jīng)驗(yàn)。

  • 堅(jiān)持開箱即用,當(dāng)默認(rèn)設(shè)置不滿足需求時(shí)可以快速避免默認(rèn)設(shè)置。

  • 為具有許多類的工程提供一系列常用的非功能特性(例如嵌入式服務(wù)器、安全、度量、健康檢查、外部配置)。

  • 絕對(duì)沒有XML配置代碼產(chǎn)生和XML配置需求。

9. 系統(tǒng)需求

By default, Spring Boot 2.0.0.BUILD-SNAPSHOT requires Java 7 and Spring Framework 5.0.0.BUILD-SNAPSHOT or above. You can use Spring Boot with Java 6 with some additional configuration. See Section 80.11, “How to use Java 6” for more details. Explicit build support is provided for Maven (3.2+) and Gradle (1.12 or 2.x). Gradle 3 is not supported.

默認(rèn)情況下,Spring Boot 2.0.0.BUILD-SNAPSHOT需要Java 7和Spring Framework 5.0.0.BUILD-SNAPSHOT及以上。你可以通過一些額外配置在Java 6下使用Spring Boot。更多細(xì)節(jié)請(qǐng)看80.11小節(jié),"怎樣使用Java 6"。明確的構(gòu)建支持有Maven (3.2+)和Gradle (1.12 or 2.x),不支持Gradle 3。

Although you can use Spring Boot with Java 6 or 7, we generally recommend Java 8 if at all possible.

?

雖然你可以在Java 6或Java 7下使用Spring Boot,但我們建議盡可能的使用Java 8。

9.1 Servlet容器

下面的嵌入式servlet容器支持開箱即用:

Name Servlet Version Java Version
Tomcat 8 3.1 Java 7+
Tomcat 7 3.0 Java 6+
Jetty 9.3 3.1 Java 8+
Jetty 9.2 3.1 Java 7+
Jetty 8 3.0 Java 6+
Undertow 1.3 3.1 Java 7+

你也可以部署Spring Boot應(yīng)用到任何兼容Servlet 3.0+的容器。

10. 安裝Spring Boot

Spring Boot可以和"經(jīng)典"的Java開發(fā)工具一起使用,也可作為一個(gè)命令行工具來進(jìn)行安裝。不管你是需要Java SDK v.16還是更高版本,在開始之前你應(yīng)該檢查你當(dāng)前安裝的Java版本。

$ java -version

如果你是Java開發(fā)的新手,或你只想嘗試Spring Boot,你可能首先想試一下Spring Boot CLI,否則,請(qǐng)讀"經(jīng)典"的安裝說明。

雖然Spring Boot兼容Java 1.6,但可能的話,你應(yīng)該考慮使用Java的最新版本。

10.1 Java開發(fā)者的安裝說明

你可以使用Spring Boot像使用任何標(biāo)準(zhǔn)Java庫一樣。簡(jiǎn)單的在你的classpath中包含恰當(dāng)spring-boot-*.jar即可。Spring Boot不需要任何特定的工具集成,因此你可以使用任何IDE或文本編輯器;Spring Boot應(yīng)用沒有什么特別的,你可以像其它的Java程序一樣來運(yùn)行和調(diào)試。

盡管你可以只拷貝Spring Boot的jars,但通常我們建議你使用一個(gè)支持依賴管理的構(gòu)建工具(例如Maven或Gradle)。

10.1.1 Maven安裝

Spring Boot兼容Apache Maven 3.2或以上。如果你沒有安裝Maven,你可以根據(jù)maven.apache.org的說明來安裝。

在許多操作系統(tǒng)上Maven都能通過包管理器來安裝。如果你是一個(gè)OSX Homebrew用戶可以通過brew install maven安裝。Ubuntu用戶可以通過sudo apt-get install maven安裝。

Spring Boot依賴使用org.springframework.boot groupId。通常你的Maven POM文件將繼承spring-boot-starter-parent工程并聲明一個(gè)或多個(gè)“Starters”依賴。Spring Boot也提供一個(gè)可選的Maven插件來創(chuàng)建可執(zhí)行的jar包。

下面是一個(gè)典型的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.0.BUILD-SNAPSHOT</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>

    <!-- Add Spring repositories -->
    <!-- (you don't need this if you are using a .RELEASE version) -->
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <url>http://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
</project>

spring-boot-starter-parent是使用Spring Boot的一種極好的方式,但它可能不是一直都合適的。有時(shí)你可能需要繼承一個(gè)不同的父POM,或者你可能不喜歡我們的默認(rèn)設(shè)置。請(qǐng)看13.2.2小節(jié),『沒有父POM的情況下使用Spring Boot』是一種可替代的解決方案,它使用了import作用域。

10.1.2 Gradle安裝

Spring Boot兼容Gradle 1.12或2.x。推薦使用2.14.1。不支持Gradle 3。如果你沒有安裝Gradle,你可以根據(jù)www.gradle.org/的介紹來安裝。

Spring Boot依賴使用org.springframework.boot groupId。通常你的工程會(huì)聲明一個(gè)或多個(gè)“Starters”依賴。Spring Boot提供了一個(gè)有用的Gradle插件用來簡(jiǎn)化依賴聲明并創(chuàng)建可執(zhí)行的jar包。

Gradle Wrapper

當(dāng)你需要構(gòu)建一個(gè)工程時(shí),Gradle Wrapper提供了一種很好的方式來『獲得』Gradle。它是一小段腳本和庫,并隨著你的代碼一起提交來引導(dǎo)構(gòu)建過程。更多細(xì)節(jié)請(qǐng)看https://docs.gradle.org/2.14.1/userguide/gradle_wrapper.html

10.2 安裝Spring Boot CLI

Spring Boot CLI是一個(gè)命令行工具,可以用來快速搭建基于Spring的原型。它允許你運(yùn)行Groovy腳本,這意味著你有一個(gè)熟悉的類Java語法,沒有很多的樣本代碼。

你不需要使用CLI來使用Spring Boot但它是開始得到一個(gè)基于Spring應(yīng)用的最快方式。

10.2.1 手動(dòng)安裝

你可以從Spring軟件倉庫下載Spring CLI發(fā)行版:

最新的snapshot distributions也是可獲得的。

一旦下載完成,按照存檔INSTALL.txt中的 介紹來安裝。總結(jié):bin/目錄的.zip文件中有一個(gè)spring腳本(Windows中是spring.bat),或者你可以使用java -jar運(yùn)行.jar文件(這個(gè)腳本幫你確保正確設(shè)置classpath)。

10.2.2 使用SDKMAN!安裝

SDKMAN! (The Software Development Kit Manager)能用來管理各種二進(jìn)制SDKs的多個(gè)版本,包括Groovy和Spring Boot CLI。從sdkman.io中得到SDKMAN!并安裝Spring Boot:

$ sdk install springboot
$ spring --version
Spring Boot v2.0.0.BUILD-SNAPSHOT

如果你在為CLI開發(fā)功能并向很容易的訪問你夠簡(jiǎn)單版本,按照這些額外的介紹去做。

$ sdk install springboot dev /path/to/spring-boot/spring-boot-cli/target/spring-boot-cli-2.0.0.BUILD-SNAPSHOT-bin/spring-2.0.0.BUILD-SNAPSHOT/
$ sdk default springboot dev
$ spring --version
Spring CLI v2.0.0.BUILD-SNAPSHOT

這將會(huì)安裝一個(gè)名為dev的本地spring實(shí)例。它指向你的目標(biāo)構(gòu)建位置,因此你每次重新構(gòu)建Spring Boot,spring將是最新的。

按下面去做你會(huì)看到:

$ sdk ls springboot

================================================================================
Available Springboot Versions
================================================================================
> + dev
* 2.0.0.BUILD-SNAPSHOT

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

10.2.3 OSX Homebrew安裝

如果你在Mac上使用Homebrew,安裝Spring Boot CLI所有你需要做的是:

$ brew tap pivotal/tap
$ brew install springboot

Homebrew會(huì)在/usr/local/bin目錄安裝spring

如果你沒有看到公式,你安裝的brew可能過時(shí)了。執(zhí)行brew update并重新再試一次。

10.2.4 MacPorts安裝

如果你在Mac上使用MacPorts,安裝Spring Boot CLI所有你需要做的是:

$ sudo port install spring-boot-cli

10.2.5 命令行實(shí)現(xiàn)

Spring Boot CLI附帶的腳本為BASHzsh shells提供了命令行實(shí)現(xiàn)。你可以在任何shell中source腳本(也稱為spring),或?qū)⑺旁谟脩艋蛳到y(tǒng)范圍內(nèi)的bash完成初始化。在Debian系統(tǒng)中系統(tǒng)范圍內(nèi)的腳本是在/shell-completion/bash目錄中,當(dāng)新shell啟動(dòng)時(shí),目錄下的所有腳本都被執(zhí)行。如果你裝了SDKMAN!,為了手動(dòng)運(yùn)行腳本,執(zhí)行下面的命令:

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

如果你想使用Homebrew或MacPorts安裝Spring Boot CLI,命令行完成腳本會(huì)自動(dòng)在shell中注冊(cè)。

10.2.6 快速Spring CLI例子

這兒有一個(gè)真實(shí)的簡(jiǎn)單的web應(yīng)用,你可以用來測(cè)試你的安裝。創(chuàng)建一個(gè)文件叫app.groovy

@RestController
class ThisWillActuallyRun {

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

}

這兒有一個(gè)真實(shí)的簡(jiǎn)單的web應(yīng)用,你可以用來測(cè)試你的安裝。創(chuàng)建一個(gè)文件叫app.groovy

@RestController
class ThisWillActuallyRun {

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

}

當(dāng)你第一次運(yùn)行應(yīng)用時(shí)它需要一段時(shí)間,因?yàn)橐螺d依賴。接下來運(yùn)行會(huì)更快。

在你最喜歡的瀏覽器中輸入localhost:8080,你應(yīng)該會(huì)看到下面的結(jié)果:

Hello World!

10.3 從早期的Spring Boot升級(jí)

如果正在升級(jí)你的Spring Boot,檢查project wiki中的『發(fā)布說明』。你將找到升級(jí)說明,說明中有每一次發(fā)布的特性列表。

為了升級(jí)現(xiàn)有的CLI,要使用合適的包管理命令(例如brew upgrade),如果你手動(dòng)安裝的CLI,要按照標(biāo)準(zhǔn)的說明去做,為了移除舊的引用要記住更新你的PATH環(huán)境變量。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容