Spring Boot 2.0 的快速入門(圖文教程)

Spring Boot 2.0 的快速入門(圖文教程)

大家都知道,Spring Framework 是 Java/Spring 應用程序跨平臺開發框架,也是 Java EE(Java Enterprise Edition) 輕量級框架,其 Spring 平臺為 Java 開發者提供了全面的基礎設施支持。 雖然 Spring 基礎組件的代碼是輕量級,但其配置依舊是重量級的。

那是怎么解決了呢?當然是 Spring Boot,Spring Boot 提供了新的編程模式,讓開發 Spring 應用變得更加簡單方便。本書將會由各個最佳實踐工程出發,涉及 Spring Boot 開發相關的各方面。下面先了解下 Spring Boot 框架。

1.1 Spring Boot 是什么

Spring Boot (Boot 顧名思義,是引導的意思)框架是用于簡化 Spring 應用從搭建到開發的過程。應用開箱即用,只要通過一個指令,包括命令行java -jar、SpringApplication應用啟動類 、 Spring Boot Maven 插件等,就可以啟動應用了。另外,Spring Boot 強調只需要很少的配置文件,所以在開發生產級 Spring 應用中,讓開發變得更加高效和簡易。目前,Spring Boot 版本是 2.x 版本。

1.1.1 Spring Boot 2.x 特性

Spring Boot 2.x 具有哪些生產的特性呢?常用特性如下:

SpringApplication 應用類

自動配置

外化配置

內嵌容器

Starter 組件

還有對日志、Web、消息、測試及擴展等支持。

SpringApplication

SpringApplication是 Spring Boot 應用啟動類,在main()方法中調用SpringApplication.run()靜態方法,即可運行一個 Spring Boot 應用。簡單使用代碼片段如下:

publicstaticvoidmain(String[] args){

? ? SpringApplication.run(QuickStartApplication.class, args);

}

Spring Boot 運行的應用是獨立的一個 Jar 應用,實際上在運行時啟動了應用內部的內嵌容器,容器初始化 Spring 環境及其組件并啟動應用。也可以使用 Spring Boot 開發傳統的應用,只要通過 Spring Boot Maven 插件將 Jar 應用轉換成 War 應用即可。

自動配置

Spring Boot 在不需要任何配置情況下,就直接可以運行一個應用。實際上,Spring Boot 框架的spring-boot-autoconfigure依賴做了很多默認的配置項,即應用默認值。這種模式叫做 “自動配置”。Spring Boot 自動配置會根據添加的依賴,自動加載依賴相關的配置屬性并啟動依賴。例如,默認用的內嵌式容器是 Tomcat ,端口默認設置為 8080。

外化配置

Spring Boot 簡化了配置,在 application.properties 文件配置常用的應用屬性。Spring Boot 可以將配置外部化,這種模式叫做 “外化配置”。將配置從代碼中分離外置,最明顯的作用是只要簡單地修改下外化配置文件,就可以在不同環境中,可以運行相同的應用代碼。

內嵌容器

Spring Boot 啟動應用,默認情況下是自動啟動了內嵌容器 Tomcat,并且自動設置了默認端口為 8080。另外還提供了對 Jetty、Undertow 等容器的支持。開發者自行在添加對應的容器 Starter 組件依賴,即可配置并使用對應內嵌容器實例。

Starter 組件

Spring Boot 提供了很多 “開箱即用” 的 Starter 組件。Starter 組件是可被加載在應用中的 Maven 依賴項。只需要在 Maven 配置中添加對應的依賴配置,即可使用對應的 Starter 組件。例如,添加spring-boot-starter-web依賴,就可用于構建 REST API 服務,其包含了 Spring MVC 和 Tomcat 內嵌容器等。

開發中,很多功能是通過添加 Starter 組件的方式來進行實現。那么,Spring Boot 2.x 常用的 Starter 組件有哪些呢?

1.1.2 Spring Boot 2.x Starter 組件

Spring Boot 官方提供了很多 Starter 組件,涉及 Web、模板引擎、SQL 、NoSQL、緩存、驗證、日志、測試、內嵌容器,還提供了事務、消息、安全、監控、大數據等支持。前面模塊會在本書中一一介紹,后面這些模塊本書不會涉及,如需自行請參看 Spring Boot 官方文檔。

每個模塊會有多種技術實現選型支持,來實現各種復雜的業務需求:

Web:Spring Web、Spring WebFlux 等

模板引擎:Thymeleaf、FreeMarker、Groovy、Mustache 等

SQL:MySQL 、H2 等

NoSQL:Redis、MongoDB、Cassandra、Elasticsearch 等

驗證框架:Hibernate Validator、Spring Validator 等

日志框架:Log4j2、Logback 等

測試:JUnit、Spring Boot Test、AssertJ、Mockito 等

內嵌容器:Tomcat、Jetty、Undertow 等

另外,Spring WebFlux 框架目前支持 Servlet 3.1 以上的 Servlet 容器和 Netty,各種模塊組成了 Spring Boot 2.x 的工作常用技術棧,如圖 1-1 所示。


圖 1-1 Spring Boot 技術架構

正如白貓黑貓,能抓住老鼠的就是好貓。在上述技術選型中,需要為公司業務的要求和團隊技能選擇最有效最合適的設計方案、架構和編程模型。

1.1.3 Spring Boot 應用場景

Spring Boot 模塊眾多,代表著應用場景也非常廣泛,包括 Web 應用、SOA 及微服務等。在 Web 應用中,Spring Boot 封裝了 Spring MVC 即可以提供 MVC 模式開發傳統的 Web,又可以開發 REST API ,來開發 Web、APP、Open API 各種應用。在 SOA 及微服務中,用 Spring Boot 可以包裝每個服務,本身可以提供輕量級 REST API 服務接口。也可以整合流行的 RPC 框架(Dubbo 等),提供 RPC 服務接口,只要簡單地加入對應的 Starter 組件即可。在微服務實戰中,推薦使用 Spring Cloud,是一套基于 Spring Boot 實現分布式系統的工具,適用于構建微服務。

上面從組件和特性兩方面介紹了 Spring Boot 2.x,下面快速入門去了解 Spring Boot 2.x 的基本用法。

1.2 快速入門工程

在搭建一個 Spring Boot 工程應用前,需要配置好開發環境及安裝好開發工具:

JDK 1.8+

Spring Boot 2.x 要求 JDK 1.8 環境及以上版本。另外,Spring Boot 2.x 只兼容 Spring Framework 5.0 及以上版本。

Maven 3.2+

為 Spring Boot 2.x 提供了相關依賴構建工具是 Maven,版本需要 3.2 及以上版本。使用 Gradle 則需要 1.12 及以上版本。本書使用 Maven 對 Spring Boot 工程進行依賴和構建管理。

IntelliJ IDEA

IntelliJ IDEA (簡稱 IDEA)是常用的開發工具,也是本書推薦使用的。同樣使用 Eclipse IDE,也能完成本書的實踐案例。另外,本書的工程都會在 GitHub 上開源,如需要請自行安裝 Git 環境。

注意:

JDK 安裝、Maven 安裝、Git 安裝和 IntelliJ IDEA 開發工具安裝詳解,見附錄 A

安裝環境雖然耗時,但磨刀不誤砍柴工。下面開發 “Hello Spring Boot” 工程,大致分下面三個步驟:

創建工程

開發工程

運行工程

1.2.1 創建工程 “Hello Spring Boot”

在 IDEA 中,利用 Spring Initializr 插件進行創建名為 chapter-1-spring-boot-quickstart 工程。具體工程創建方式可見 1.3.1 章節。

第一步,打開 IDEA,選擇新建工程按鈕,然后選擇左側欄 Spring Initializr 選項。默認選擇 JDK 版本和 Spring Initializr 的網站地址。如果是封閉式內網開發,也可以搭建一個 Spring Initializr 的內網服務。如圖 1-2 所示。


圖 1-2 創建工程之選擇使用 Spring Initializr

第二步,點擊下一步,輸入 Maven 工程信息。這里對應的 Maven 信息為:

groupId:demo.springboot

artifactId:chapter-1-spring-boot-quickstart

version:1.0

這里還可以設置工程的名稱和描述等,如圖 1-3 所示。


圖 1-3 創建工程之新建工程信息

第三步,點擊下一步,在依賴選擇可視化操作中,下拉選擇 Spring Boot 版本號和勾選工程需要的 Starter 組件和其他依賴。這里選擇 Web 依賴,為了去實現一個簡單的 REST API 服務,即訪問 GET:/hello 會返回 “Hello,Spring Boot!” 的字符串。如圖 1-4 所示。


圖 1-4 創建工程之選擇 Web 依賴

這樣就創建好名為 chapter-1-spring-boot-quickstart 工程,使用 IDEA 提示打開工程即可。

1.2.2 開發工程之 Pom 依賴

在 pom.xml 配置文件中,parent節點配置是 Spring Boot 的 Parent 依賴,代碼如下:

org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE

spring-boot-starter-parent依賴,是 Spring Boot 提供的一個特殊的 Starter 組件,本身沒有任何依賴。

spring-boot-starter-parent職責,一方面是用于提供 Maven 配置的默認值,即在 Spring Boot 2.x 中設置 JDK 1.8 為默認編譯級別、設置UTF-8編碼等。另一方面,其父依賴spring-boot-dependencies中的dependency-management節點提供了所有 Starter 組件依賴配置的缺省版本值,但不提供依賴本身的繼承。這樣的作用是使用各個組件依賴拿來即用,不需要指定 version 。

因為創建工程時,勾選 Web 依賴,Spring Initializr 會自動添加 Web 依賴,代碼如下:

<!-- Web 依賴 --> org.springframework.boot spring-boot-starter-web

正如上面所說,這里只需要加入 groupId 和 artifactId 即可,不需要配置 version。

1.2.3 開發工程之應用啟動類

在工程 src 目錄中,已經自動創建了包目錄demo.springboot,其包下自動創建了 Spring Boot 應用啟動類,代碼如下:

@SpringBootApplicationpublic classQuickStartApplication{

? ? publicstaticvoidmain(String[] args){

? ? ? ? SpringApplication.run(QuickStartApplication.class, args);

? ? }

}

Spring Boot 應用啟動類,是可以用來啟動 Spring Boot 應用。其包含了?@SpringBootApplication?注解和SpringApplication?類,并調用?SpringApplication?類的?run()?方法,就可以啟動該應用。

@SpringBootApplication 注解

@SpringBootApplication注解用標注啟動類,被標注的類為一個配置類,并會觸發自動配置和 Starter 組件掃描。根據源碼可得,該注解配置了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan三個注解,@SpringBootConfiguration注解又配置了@EnableAutoConfiguration。所以該注解的職責相當于結合了@Configuration,@EnableAutoConfiguration和@ComponentScan三個注解功能。

@SpringBootApplication注解的職責如下:

在被該注解修飾的類中,可以用@Bean注解來配置多個 Bean 。應用啟動時,Spring 容器會加載 Bean 并注入到 Spring 容器。

啟動 Spring 上下文的自動配置?;谝蕾嚭投x的 Bean 會自動配置需要的 Bean 和類。

掃描被@Configuration修飾的配置類。也會掃描 Starter 組件的配置類,并啟動加載其默認配置

SpringApplication 類

大多數情況下,在main方法中調用SpringApplication類的靜態方法run(Class, String[]),用來引導啟動 Spring 應用程序。默認情況下,該類的職責會執行如下步驟:

創建應用上下文ApplicationContext實例

注冊CommandLinePropertySource,將命令行參數賦值到 Spring 屬性

刷新應用上下文,加載所有單例

觸發所有CommandLineRunnerBean

在實際開發中如果需要自定義創建高級的配置,可以通過?run(Class, String[])?方法的第二個參數,并以 String 數組的形式傳入。這是?run?幾個重載方法的 API 文檔:

API org.springframework.boot.SpringApplication

static run(Class[] primarySources, String[] args)

返回正在運行的應用上下文ApplicationContext

參數:

primarySources 應用指定的主要類源,數組形式

args 應用參數

static run(Class primarySource, String... args)

返回正在運行的應用上下文ApplicationContext

參數:

primarySource 應用指定的主要類源

args 應用參數

run(String... args)

返回正在運行的應用上下文ApplicationContext

參數:

args 應用參數

1.2.4 開發工程之 Hello 控制層類

在工程中新建包目錄demo.springboot.web,并在目錄中創建名為HelloController的控制層類,代碼如下:

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;

@Controllerpublic class HelloController {

? ? @RequestMapping(value = "/hello",method = RequestMethod.GET)

? ? @ResponseBody

? ? public String sayHello() {

? ? ? ? return "Hello,Spring Boot!";

? ? }

}

上面定義了簡單的 REST API 服務,即?GET:/hello。表示該 Hello 控制層?sayHello()?方法會提供請求路徑為?/hello?和請求方法為 GET 的 HTTP 服務接口。Spring 4.0 的注解?@RestController?支持實現 REST API 控制層。本質上,該注解結合了?@Controller?和?@ResponseBody?的功能。所以將上面?HelloController?可以改造升級成?HelloBookController,代碼如下:

import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;

@RestControllerpublic class HelloBookController {

? ? @RequestMapping(value = "/book/hello",method = RequestMethod.GET)

? ? public String sayHello() {

? ? ? ? return "Hello,《Spring Boot 2.x 核心技術實戰 - 上 基礎篇》!";

? ? }

}

以上核心注解是 Spring MVC 框架的知識點:

@Controller 注解

@Controller對控制層類進行標注,職責是使控制層可以處理 HTTP 請求,簡單可以理解為,使控制層能接受請求,處理請求并響應。

@RequestMapping 注解

@RequestMapping對控制層類的方法進行標注,職責是標明方法對應的 HTTP 請求路由的關系映射。參數 value 主要請求映射地址,可接受多個地址。參數 method 標注 HTTP 方法,常用如: GET,POST,HEAD,OPTIONS,PUT,PATCH,DELETE,TRACE。默認是 GET HTTP 方法,在 GET 請求的情況下,可以縮寫成@RequestMapping(value = "/book/hello")。Spring 4 支持直接使用XXXMapping形式的注解,比如上面代碼可以寫成@GetMapping("/book/hello")。

@ResponseBody 注解

@ResponseBody對控制層類的方法進行標注,職責是指定響應體為方法的返回值。上面代碼中,案例是以字符串的形式返回,自然可以使用其他復雜對象作為返回體。

1.2.5 運行工程

一個簡單的 Spring Boot 工程就開發完畢了,下面運行工程驗證下。

Maven 編譯工程

使用 IDEA 右側工具欄,點擊 Maven Project Tab ,點擊使用下 Maven 插件的install命令。如圖 1-5 所示:


圖 1-5 IDEA Maven 工具欄

或者使用命令行的形式,在工程根目錄下,執行 Maven 清理和安裝工程的指令:

cd chapter-1-spring-boot-quickstart

mvn clean install

在 target 目錄中看到 chapter-1-spring-boot-quickstart-1.0.jar 文件生成,或者在編譯的控制臺中看到成功的輸出:

... 省略

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 01:30 min

[INFO] Finished at: 2017-10-15T10:00:54+08:00[INFO] Final Memory: 31M/174M

[INFO] ------------------------------------------------------------------------

上面兩種方式都可以成功編譯工程。

運行工程

在 IDEA 中執行QuickStartApplication類啟動,任意正常模式或者 Debug 模式??梢栽诳刂婆_看到成功運行的輸出:

... 省略

2017-10-15 10:05:19.994? INFO 17963 --- [? ? ? ? ? main] o.s.b.w.embedded.tomcat.TomcatWebServer? : Tomcat started on port(s): 8080 (http)

2017-10-15 10:05:20.000? INFO 17963 --- [? ? ? ? ? main] demo.springboot.QuickStartApplication? ? : Started QuickStartApplication in 5.544 seconds (JVM running for 6.802)

打開瀏覽器,訪問 /hello 地址,會看到如圖 1-6 所示的返回結果:


圖 1-6 Hello 頁面

再訪問 /book/hello 地址,會看到如圖 1-7 所示的返回結果:


圖 1-7 Hello Book 頁面

本章工程名為 chapter-1-spring-boot-quickstart,具體代碼見本書對應的 GitHub。

1.3 Spring Boot 工程構建

快速入門中還沒有詳細介紹 Spring Boot 工程構建。工程構建包括創建工程、工程結構和運行工程等。

1.3.1 工程創建方式

Spring Boot Maven 工程,就是普通的 Maven 工程,加入了對應的 Spring Boot 依賴即可。Spring Initializr 則是像代碼生成器一樣,自動就給你出來了一個 Spring Boot Maven 工程。Spring Initializr 有兩種方式可以得到 Spring Boot Maven 骨架工程:

start.spring.io 在線生成

Spring 官方提供了名為 Spring Initializr 的網站,去引導你快速生成 Spring Boot 應用。網站地址為:https://start.spring.io,操作步驟如下:

第一步,選擇 Maven 或者 Gradle 構建工具,開發語言 Java 、Kotlin 或者 Groovy,最后確定 Spring Boot 版本號。這里默認選擇 Maven 構建工具、Java 開發語言和 Spring Boot 2.0.0。

第二步,輸入 Maven 工程信息,即項目組groupId和名字artifactId。這里對應 Maven 信息為:

groupId:demo.springboot

artifactId:chapter-1-spring-boot-quickstart

這里默認版本號 version 為 0.0.1-SNAPSHOT 。三個屬性在 Maven 依賴倉庫是唯一標識的。

第三步,選擇工程需要的 Starter 組件和其他依賴。最后點擊生成按鈕,即可獲得骨架工程壓縮包。如圖 1-8 所示。


圖 1-8 Spring Initializr 在線生成

IDEA 支持 Spring Initializr 生成

IDEA 支持 Spring Initializr 生成,這對于開發來說更進一步的省事,也是推薦的創建工程方式。

第一步,打開 IDEA,選擇新建工程按鈕,然后選擇左側欄 Spring Initializr 選項。默認選擇 JDK 版本和 Spring Initializr 的網站地址。如果是封閉式內網開發,也可以搭建一個 Spring Initializr 的內網服務。

第二步,點擊下一步,輸入 Maven 工程信息。這里對應的 Maven 信息為:

groupId:demo.springboot

artifactId:chapter-1-spring-boot-quickstart

version:1.0

這里還可以設置工程的名稱和描述等。

第三步,點擊下一步,在可視化操作中,下拉選擇 Spring Boot 版本號和勾選工程需要的 Starter 組件和其他依賴。如圖 1-9 所示。


圖 1-9 IDEA 支持 Spring Initializr 生成

1.3.2 工程結構

通過工程創建,得到的工程有默認的結構,其目錄結構如下:

├── pom.xml└── src ├── main │ ├── java │ │ └── demo │ │ └── springboot │ │ └── QuickstartApplication.java │ └── resources │ ├── application.properties │ ├── static │ └── templates └── test └── java └── demo └── springboot └── QuickstartApplicationTests.java

這是默認的工程結構,java 目錄中是編寫代碼的源目錄,比如三層模型大致會新建三個包目錄,web 包負責 web 服務,service 包負責業務邏輯,domain 包數據源服務。對應 java 目錄的是 test 目錄,編寫單元測試的目錄。

resources 目錄會有 application.properties 應用配置文件,還有默認生成的 static 和 templates 目錄,static 用于存放靜態資源文件,templates 用于存放模板文件??梢栽?application.properties 中自定義配置資源和模板目錄。

1.3.3 工程運行方式

上面使用應用啟動類運行工程 “Hello Spring Boot”,這是其中一種工程運行方式。 Spring Boot 應用的運行方式很簡單,下面介紹下這三種運行方式:

1. 使用應用啟動類

在 IDEA 中直接執行應用啟動類,來運行 Spring Boot 應用。日常開發中,會經常使用這種方式啟動應用。常用的會有 Debug 啟動模式,方便在開發中進行代碼調試和 bug 處理。自然,Debug 啟動模式會比正常模式稍微慢一些。

2. 使用 Maven 運行

通過 Maven 運行,需要配置 Spring Boot Maven 插件,在 pom.xml 配置文件中,新增build節點并配置插件 spring-boot-maven-plugin,代碼如下:

<!-- Spring Boot Maven 插件 --> org.springframework.boot spring-boot-maven-plugin

在工程根目錄中,運行如下 Maven 命令來運行 Spring Boot 應用:

# 生成構建信息文件spring-boot:build-info# 幫助信息spring-boot:help# 重新打包spring-boot:repackage# 運行工程spring-boot:run# 將工程集成到集成測試階段,進行工程的聲明周期管理spring-boot:startspring-boot:stop

3. 使用 Java 命令運行

使用 Maven 或者 Gradle 安裝工程,生成可執行的工程 jar 后,運行如下 Java 命令來運行 Spring Boot 應用:

java -jar target/chapter-1-spring-boot-quickstart-1.0.jar

這里運行了 spring-boot-maven-plugin 插件編譯出來的可執行 jar 文件。通過上述三種方式都可以成功運行 Spring Boot 工程,成功運行輸出的控制臺信息如圖 1-10 所示。

圖 1-10 控制臺成功信息

1.4 安裝使用 Spring Boot

在上面工程 “Hello Spring Boot” 中,使用了 Maven 方式去安裝使用了 Spring Boot 。使用 Maven 或 Gradle 安裝是推薦的方式。新的 Java 程序員或從未有過經驗開發 Spring Boot 的開發者,推薦使用 Spring Boot CLI 安裝學習更好。下面簡單介紹下三種方式。

1.4.1 Maven 方式

Maven 是依賴管理的構建工具。類似其他依賴庫使用一樣,在 Maven 配置中加入 Spring Boot 相關依賴配置即可安裝使用 Spring Boot 。Spring Boot 需要 Maven 3.2 及以上版本的支持。具體 Maven 安裝介紹,詳見官網 maven.apache.org。

Spring Boot 依賴使用 org.springframework.boot 作為其項目組 groupId 名稱,Starter 組件的名字 artifactId 以 spring-boot-starter-xxx 形式命名。

注意,如果不想使用 spring-boot-starter-parent 父 Starter 組件,可以將 spring-boot-dependencies 作為工程依賴管理庫,并指定 scope 為 import。代碼如下:

org.springframework.boot spring-boot-dependencies 2.0.0 pom import

1.4.2 Gradle 方式

Gradle 是依賴管理的構建工具。類似 Maven 方式一樣,Spring Boot 需要 Gradle 4 的支持。具體 Gradle 安裝介紹,詳見官網 www.gradle.org。

1.4.3 Spring Boot CLI

Spring Boot CLI 是 Spring Boot Commad Line 的縮寫,是 Spring Boot 命令行工具。在 Spring Boot CLI 可以跑 Groovy 腳本,通過簡單的 Java 語法就可以快速而又簡單的學習 Spring Boot 原型。

Spring Boot CLI 安裝

打開 Spring Boot CLI 下載頁面,地址:https://repo.spring.io/milestone/org/springframework/boot/spring-boot-cli。下載需要的spring-boot-cli-2.0.0-bin.zip 或者 spring-boot-cli-2.0.0-bin.tar.gz 依賴,并解壓到安裝目錄,并指定其 bin 目錄添加環境變量。

比如 Mac 環境下,代碼如下:

export PATH=${PATH}:/spring-boot-cli-2.0.0.RELEASE/bin

比如 Windows 環境下,代碼如下:

set PATH=D:\spring-boot-cli-2.0.0.RELEASE\bin;%PATH%

執行下面指令能輸出對應的版本,用來驗證是否安裝成功,代碼如下:

spring --version

在控制臺中會出現成功的輸出:

Spring CLI v2.0.0

另外,也支持 Homebrew、MacPorts 進行安裝。

使用 Spring Boot CLI

安裝好 Spring Boot CLI 基礎環境后,運行 “Hello Spring Boot” 就更加簡單了,新建 hello.groovy 文件,代碼如下:

@RestControllerpublic classHelloController{

? ? @RequestMapping(value = "/hello")

? ? publicStringsayHello(){

? ? ? ? return "Hello,Spring Boot!";

? ? }

}

然后執行下面指令,進行編譯運行應用:

spring run hello.groovy

也可以,通過--去外化配置屬性值。比如配置端口號為 8081:spring run hello.groovy -- --server.port=9000。等控制臺成功輸出,打開瀏覽器,訪問 /hello 地址,可以得到 "Hello,Spring Boot!" 的結果。

注意:

具體如何使用 Spring CLI,詳見官方使用文檔:docs.spring.io/spring-boot/docs/current/reference/html/cli-using-the-cli.html

1.5 服務器部署方式

基礎環境安裝如上面說的,需要 JDK 環境、Maven 環境等

1.5.1 Win 服務器

推薦使用 AlwaysUp:


使用方式也很簡單:


1.5.2 Linux 服務器

推薦 yum 安裝基礎環境,比如安裝 JDK:

yum -y list java*yum -y install java-1.8.0-openjdk*java -version

安裝 Maven:

yum -y list apache-maven

sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo

sudo yum install -y apache-maven

mvn --v

Linux 使用 nohup 命令進行對后臺程序的啟動關閉。

關閉應用的腳本:stop.sh


啟動應用的腳本:start.sh


重啟應用的腳本:stop.sh


1.6 小結

從 Spring Boot 介紹開始,包括特性、Starter 組件以及應用場景,又通過快速入門工程出發,講解了開發 Spring Boot 應用涉及到的 Pom 依賴、應用啟動類以及控制層,然后講解了工程構建周期的創建、結構及運行方式,此外還總結了安裝使用 Spring Boot 的三種方式。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容