通過第1講的學習,相信大家都能搭建一個最簡單的基於Spring Boot的應用框架。本章,我們繼續學習Spring Boot框架的搭建,讀者將會學習其他幾種快捷的框架搭建方式,在實際應用中,讀者可以根據自己的喜好選擇適合的框架搭建方式。
Spring Boot CLI的使用
Spring Boot CLI簡介
Spring Boot CLI,全稱 Spring Boot Command Line Interface,它是一個命令行工具,如果您想快速開發Spring應用程序,可以使用它。它允許您運行Groovy腳本(當然,Java代碼也是支持的)。您還可以引導一個新項目或編寫自己的命令。
Spring Boot CLI的安裝
Spring Boot CLI是一個命令行工具,在使用之前,我們應先安裝它,它的安裝方式有幾種,接下來,我們將分別介紹這幾種方式。
Windows系統手動安裝
Spring Boot官方在其倉庫上提供了安裝包,其下載鏈接是:https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/2.2.1.RELEASE/spring-boot-cli-2.2.1.RELEASE-bin.zip,下載完成後解壓之,如圖2-1所示。
然後設置環境變量,如圖2-2所示。
這樣Spring Boot CLI就安裝完成了。接下來,我們打開cmd命令行,輸入下述命令可以查看當前Spring Boot CLI的版本。
spring --version
如圖2-3所示。
Linux系統通過SDKMAN安裝
Spring Boot CLI同樣支持通過SDKMAN來安裝。
SDKMAN,全稱The Software Development Kit Manager,即軟件開發工具管理器,通過使用它,我們可以管理很多不同版本的二進制SDK,當然也包括Spring Boot CLI。
SDKMAN主要安裝到Unix/Linux內核的操作系統中。
在安裝Spring Boot CLI之前,我們應先安裝SDKMAN,Linux系統下依次執行命令:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
即可完成安裝。
我們可以通過輸入命令:
sdk version
來查看當前SDKMAN的版本號,如圖2-4。
接下來,我們就可以愉快地安裝Spring Boot CLI了。
在終端輸入命令:
sdk install springboot
即可方便地安裝它。
安裝完成後可以查看Spring Boot CLI的版本號:
spring --version
如果提示:JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME.說明未設置JAVA_HOME,需要設置。
設置方法請自行百度,這裏不再詳細說明。
MACOS上安裝Spring Boot CLI
考慮到有些讀者使用的事MACOS,本章也介紹如果在MACOS上安裝Spring Boot CLI。
使用過MACOS的同學應該都知道我們安裝一些軟件可以通過Homebrew來安裝,Spring Boot CLI也可以用該命令來安裝,依次輸入如下命令即可。
brew tap pivotal/tap
brew install springboot
Homebrew默認將Spring Boot CLI安裝到/usr/local/bin目錄下。
如果安裝失敗,可以嘗試先執行命令:brew update,再重試。
Spring Boot CLI快速啓動應用
通過Spring Boot CLI,我們可以快速啓動一個基於Spring Boot的Web應用。
我們可以使用Groovy腳本或者Java來編寫啓動控制器。
首先創建一個名爲hello.groovy的文件,並編寫下述代碼:
@RestController
class HelloController{
@RequestMapping("index")
String index(){
"Hello World!"
}
}
然後打開CMD命令行工具,進入hello.groovy文件所在目錄,執行命令:
spring run hello.groovy
第一次運行Spring Boot CLI會下載依賴包,啓動可能會慢一點,稍等片刻將啓動成功,如圖2-5所示。
瀏覽器訪問http://localhost:8080/index,可以看到如圖2-6所示界面。
如果讀者對Groovy腳本不熟悉,我們同樣可以使用Java語言來編寫,創建名爲hello.java的文件,並編寫下述代碼:
@RestController
public class HelloController{
@RequestMapping("index")
public String index(){
return "Hello World!";
}
}
運行命令:
spring run hello.java
其運行效果同圖2-5和圖2-6一致。
在上述命令中,Spring Boot CLI默認啓動端口爲8080,我們可以通過設置命令參數來改變啓動端口,其命令如下:
spring run hello.groovy -- --server.port=8888
注意:上述命令爲4個短橫線,兩兩爲一組,空格分開。
Spring Boot CLI搭建框架
在上一節,我們可以通過Spring Boot CLI輕鬆啓動一個應用,Spring Boot CLI的功能僅限於此嗎?答案是否定的。在一個實際的項目中,業務功能可能會非常多,只是通過Spring Boot CLI來啓動一個應用,對於一個真正的應用來說是遠遠不夠的。
存在即合理。Spring Boot官方提供了這樣一個命令行工具,目的就是讓我們可以快速的搭建應用框架,而我們作爲開發人員來說,只需要關心業務細節,而無需將精力過多的放在Spring Boot的框架搭建上。
本節,我將帶領讀者一起來見證Spring Boot CLI的強大之處。
Spring Boot CLI命令行工具爲我們提供了非常多的命令,在上一節我們已經知道了run命令,我們還可以通過init命令來構建一個項目,執行命令如下:
spring init --dependencies=web first-project
其中dependencies後面可以設置需要依賴的Spring Boot Starter包,關於Starter我將在第4講詳解,這裏讀者只要知道它是Spring Boot的官方依賴包即可。
web表示依賴Spring MVC包,該包的全名爲spring-boot-starter-web,由此可見,其指定的包名只需要輸入spring-boot-starter-後面的名字即可。
關於Spring Boot有哪些官方包,讀者可以通過訪問:添加鏈https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/reference/html/appendix-dependency-versions.html#appendix-dependency-versions接描述來查找。
讀者還可以通過輸入命令:spring init --list來查找所有可用依賴包。
稍等片刻,項目將創建完成,如圖2-7。
我們用IDEA導入剛剛創建好的項目,如圖2-8所示。
在左邊的項目欄裏可以依次打開src/main/java,找到應用啓動類:DemoApplication,啓動裏面的main方法即可。
我們可以看到Spring Boot CLI給我們創建的項目,默認GroupId爲com.example,默認的Spring Boot版本號爲2.2.2.RELEASE,其實這些都是可以指定的,表2-1展示了init命令的主要參數說明。
參數 | 描述 | 默認值 |
---|---|---|
artifactId | 項目構建ID | demo |
bootVersion | Spring Boot版本 | 最新版本(目前是2.2.2.RELEASE) |
description | 項目描述,如果有空格則加上雙引號,如:-- description “demo project” | Demo project for Spring Boot |
groupId | 項目的組織ID | com.example |
javaVersion | 語言版本 | 1.8 |
language | 項目使用的語言 | java |
name | 項目名 | demo |
packageName | 啓動類所在包名 | com.example.demo |
packaging | 項目的編譯包類型 | jar |
type | 項目類型,可選值有:maven-project、mave-build、gradle-project、gradle-build | maven-project |
version | 項目的版本號 | 0.0.1.SNAPSHOT |
除了init和run命令外,Spring Boot CLI還提供其他許多命令,通過輸入:
spring
命令即可查看。表2-2展示了Spring Boot CLI所支持的命令及其功能。
命令 | 描述 |
---|---|
run | 運行一個 Spring Groovy 腳本(同樣支持 Java 代碼) |
grab | 下載一個 Spring Groovy 腳本的相關依賴到 ./repository 目錄 |
jar | 將一個 Spring Groovy 腳本打包成一個可執行的 jar 文件 |
war | 將一個 Spring Groovy 腳本打包成一個可執行的 war 文件 |
install | 安裝依賴到 lib/ext 目錄 |
uninstall | 從 lib/ext 目錄卸載依賴 |
init | 從 Spring Initializr(start.spring.io)初始化一個新的項目 |
encodepassword | |
shell | 使用 Spring Security 加密一個密碼 |
下面以jar命令爲例來演示其用法。
jar命令允許我們將一個Spring Groovy腳本或者Java代碼打包成一個可執行的jar文件。執行命令:
spring jar hello.jar hello.groovy
即可。稍等片刻,Spring Boot CLI就爲我們生成了一個名爲hello.jar的可執行文件。執行命令:
java -jar hello.jar
同樣可以啓動應用,如圖2-9。
通過 Spring Boot CLI,一切都變得簡單,通過 IDEA 搭建 Spring Boot 應用,需要新建項目,新建 Module,添加依賴包,添加啓動類,而這一切,Spring Boot CLI 一個命令即可完成。我們不再關心框架如何搭建的,只需要專心編寫代碼即可。
通過官網下載
通過官網下載搭建好的項目框架,我認爲是最簡答的方式,訪問官網:https://start.spring.io/,如圖2-10。
依次輸入Group、Artifact、Options、Dependencies,然後點擊Generate按鈕就可快速生成基於Spring Boot的項目。
通過IDEA自動搭建
如果讀者安裝的IDEA是收費版(或者破解版),則IDEA提供了自動構建Spring Boot框架的功能。
打開IDEA,依次點擊File->New->Project,將彈出如圖2-11所示界面。
我們選中Spring Initializr,點擊Next,同上一節一樣,輸入必要的信息,連續點擊Next,最後Finish,即可完成框架的搭建。