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

摘要: 原創出處 https://www.bysocket.com 「公衆號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!css

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

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

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

1.1 Spring Boot 是什麼

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

1.1.1 Spring Boot 2.x 特性

Spring Boot 2.x 具備哪些生產的特性呢?經常使用特性以下:nginx

  • SpringApplication 應用類
  • 自動配置
  • 外化配置
  • 內嵌容器
  • Starter 組件

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

SpringApplication

SpringApplication 是 Spring Boot 應用啓動類,在 main() 方法中調用 SpringApplication.run() 靜態方法,便可運行一個 Spring Boot 應用。簡單使用代碼片斷以下:程序員

public static void main(String[] args) { SpringApplication.run(QuickStartApplication.class, args); } 

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

自動配置

Spring Boot 在不須要任何配置狀況下,就直接能夠運行一個應用。實際上,Spring Boot 框架的 spring-boot-autoconfigure 依賴作了不少默認的配置項,即應用默認值。這種模式叫作 「自動配置」。Spring Boot 自動配置會根據添加的依賴,自動加載依賴相關的配置屬性並啓動依賴。例如,默認用的內嵌式容器是 Tomcat ,端口默認設置爲 8080。web

外化配置

Spring Boot 簡化了配置,在 application.properties 文件配置經常使用的應用屬性。Spring Boot 能夠將配置外部化,這種模式叫作 「外化配置」。將配置從代碼中分離外置,最明顯的做用是隻要簡單地修改下外化配置文件,就能夠在不一樣環境中,能夠運行相同的應用代碼。spring

內嵌容器

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 等
  • 日誌框架:Log4j二、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 依賴,代碼以下:

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> <relativePath/> </parent> 

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 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 

正如上面所說,這裏只須要加入 groupId 和 artifactId 便可,不須要配置 version。

1.2.3 開發工程之應用啓動類

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

@SpringBootApplication public class QuickStartApplication { public static void main(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 上下文的自動配置。基於依賴和定義的 Bean 會自動配置須要的 Bean 和類。
  • 掃描被 @Configuration 修飾的配置類。也會掃描 Starter 組件的配置類,並啓動加載其默認配置

SpringApplication 類

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

  • 建立應用上下文 ApplicationContext 實例
  • 註冊 CommandLinePropertySource,將命令行參數賦值到 Spring 屬性
  • 刷新應用上下文,加載全部單例
  • 觸發全部 CommandLineRunner Bean

在實際開發中若是須要自定義建立高級的配置,能夠經過 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; @Controller public 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; @RestController public 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,代碼以下:

<build> <plugins> <!-- Spring Boot Maven 插件 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 

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

mvn spring-boot:run 

實際調用的是 pom.xml 配置的 Spring Boot Maven 插件 spring-boot-maven-plugin ,上面執行了插件提供的 run 指令。也能夠在 IDEA 右側工具欄的 Maven Project Tab 中,找到 Maven 插件的 spring-boot-maven-plugin,執行相應的指令。全部指令以下:

# 生成構建信息文件 spring-boot:build-info # 幫助信息 spring-boot:help # 從新打包 spring-boot:repackage # 運行工程 spring-boot:run # 將工程集成到集成測試階段,進行工程的聲明週期管理 spring-boot:start spring-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。代碼以下:

<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 

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 文件,代碼以下:

@RestController public class HelloController { @RequestMapping(value = "/hello") public String sayHello() { 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 的三種方式。

示例代碼地址:https://github.com/JeffLi1993/springboot-core-action-book-demo/tree/master/chapter-1-spring-boot-quickstart


(關注微信公衆號,領取 Java 精選乾貨學習資料)
相關文章
相關標籤/搜索