Spring Boot2 系列教程(二)建立 Spring Boot 專案的三種方式
我最早是 2016 年底開始寫 Spring Boot 相關的部落格,當時使用的版本還是 1.4.x ,文章發表在 CSDN 上,閱讀量最大的一篇有 43W+,如下圖:
2017 年由於種種原因,就沒有再繼續更新 Spring Boot 相關的部落格了,2018年又去寫書了,也沒更新,現在 Spring Boot 最新穩定版是 2.1.8 ,鬆哥想針對此寫一個系列教程,專門講 Spring Boot2 中相關的知識點。這個系列,就從本篇開始吧。
Spring Boot 介紹
我們剛開始學習 JavaWeb 的時候,使用 Servlet/JSP 做開發,一個介面搞一個 Servlet ,很頭大,後來我們通過隱藏域或者反射等方式,可以減少 Servlet 的建立,但是依然不方便,再後來,我們引入 Struts2/SpringMVC 這一類的框架,來簡化我們的開發 ,和 Servlet/JSP 相比,引入框架之後,生產力確實提高了不少,但是用久了,又發現了新的問題,即配置繁瑣易出錯,要做一個新專案,先搭建環境,環境搭建來搭建去,就是那幾行配置,不同的專案,可能就是包不同,其他大部分的配置都是一樣的,Java 總是被人詬病配置繁瑣程式碼量巨大,這就是其中一個表現。那麼怎麼辦?Spring Boot 應運而生,Spring Boot 主要提供瞭如下功能:
- 為所有基於 Spring 的 Java 開發提供方便快捷的入門體驗。
- 開箱即用,有自己自定義的配置就是用自己的,沒有就使用官方提供的預設的。
- 提供了一系列通用的非功能性的功能,例如嵌入式伺服器、安全管理、健康檢測等。
- 絕對沒有程式碼生成,也不需要XML配置。
Spring Boot 的出現讓 Java 開發又迴歸簡單,因為確確實實解決了開發中的痛點,因此這個技術得到了非常廣泛的使用,鬆哥很多朋友出去面試 Java 工程師,從2017年年初開始,Spring Boot基本就是必問,現在流行的 Spring Cloud 微服務也是基於 Spring Boot,因此,所有的 Java 工程師都有必要掌握好 Spring Boot。
系統要求
截至本文寫作(2019.09),Spring Boot 目前最新版本是 2.1.8,要求至少 JDK8,整合的 Spring 版本是 5.1.9 ,構建工具版本要求如下:
Build Tool | Version |
---|---|
Maven | 3.3+ |
Gradle | 4.4+ |
內建的容器版本分別如下:
Name | Version |
---|---|
Tomcat 9.0 | 4.0 |
Jetty 9.4 | 3.1 |
Undertow 2.0 | 4.0 |
三種建立方式
初學者看到 Spring Boot 工程建立成功後有那麼多檔案就會有點懵圈,其實 Spring Boot 工程本質上就是一個 Maven 工程,從這個角度出發,鬆哥在這裡向大家介紹三種專案建立方式。
線上建立
這是官方提供的一個建立方式,實際上,如果我們使用開發工具去建立 Spring Boot 專案的話(即第二種方案),也是從這個網站上建立的,只不過這個過程開發工具幫助我們完成了,我們只需要在開發工具中進行簡單的配置即可。
首先開啟 https://start.spring.io
這個網站,如下:
這裡要配置的按順序分別如下:
- 專案構建工具是 Maven 還是 Gradle ?鬆哥見到有人用 Gradle 做 Java 後端專案,但是整體感覺 Gradle 在 Java 後端中使用的還是比較少,Gradle 在 Android 中使用較多,Java 後端,目前來看還是 Maven 為主,因此這裡選擇第一項。
- 開發語言,這個當然是選擇 Java 了。
- Spring Boot 版本,可以看到,目前最新的穩定版是 2.1.8 ,這裡我們就是用最新穩定版。
- 既然是 Maven 工程,當然要有專案座標,專案描述等資訊了,另外這裡還讓輸入了包名,因為建立成功後會自動建立啟動類。
- Packing 表示專案要打包成 jar 包還是 war 包,Spring Boot 的一大優勢就是內嵌了 Servlet 容器,打成 jar 包後可以直接執行,所以這裡建議打包成 jar 包,當然,開發者根據實際情況也可以選擇 war 包。
- 然後選選擇構建的 JDK 版本。
- 最後是選擇所需要的依賴,輸入關鍵字如 web ,會有相關的提示,這裡我就先加入 web 依賴。
所有的事情全部完成後,點選最下面的 Generate Project
按鈕,或者點選 Alt+Enter
按鍵,此時會自動下載專案,將下載下來的專案解壓,然後用 IntelliJ IDEA 或者 Eclipse 開啟即可進行開發。
使用開發工具建立
有人覺得上面的步驟太過於繁瑣,那麼也可以使用 IDE 來建立,鬆哥這裡以 IntelliJ IDEA 和 STS 為例,需要注意的是,IntelliJ IDEA 只有 ultimate 版才有直接建立 Spring Boot 專案的功能,社群版是沒有此項功能的。
IntelliJ IDEA
首先在建立專案時選擇 Spring Initializr,如下圖:
然後點選 Next ,填入 Maven 專案的基本資訊,如下:
再接下來選擇需要新增的依賴,如下圖:
勾選完成後,點選 Next 完成專案的建立。
STS
這裡我再介紹下 Eclipse 派系的 STS 給大家參考, STS 建立 Spring Boot 專案,實際上也是從上一小節的那個網站上來的,步驟如下:
首先右鍵單擊,選擇 New -> Spring Starter Project ,如下圖:
然後在開啟的頁面中填入專案的相關資訊,如下圖:
這裡的資訊和前面提到的都一樣,不再贅述。最後一路點選 Next ,完成專案的建立。
Maven 建立
上面提到的幾種方式,實際上都藉助了 https://start.spring.io/
這個網站,鬆哥記得在 2017 年的時候,這個網站還不是很穩定,經常發生專案建立失敗的情況,從2018年開始,專案建立失敗就很少遇到了,不過有一些讀者偶爾還是會遇到這個問題,他們會在微信上問鬆哥這個問題腰怎麼處理?我一般給的建議就是直接使用 Maven 來建立專案。步驟如下:
首先建立一個普通的 Maven 專案,以 IntelliJ IDEA 為例,建立步驟如下:
注意這裡不用選擇專案骨架(如果大夥是做練習的話,也可以去嘗試選擇一下,這裡大概有十來個 Spring Boot 相關的專案骨架),直接點選 Next ,下一步中填入一個 Maven 專案的基本資訊,如下圖:
然後點選 Next 完成專案的建立。
建立完成後,在 pom.xml 檔案中,新增如下依賴:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
複製程式碼
新增成功後,再在 java 目錄下建立包,包中建立一個名為 App 的啟動類,如下:
@EnableAutoConfiguration
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
@GetMapping("/hello")
public String hello() {
return "hello";
}
}
複製程式碼
@EnableAutoConfiguration 註解表示開啟自動化配置。
然後執行這裡的 main 方法就可以啟動一個 Spring Boot 工程了。
專案結構
使用工具創建出來的專案結構大致如下圖:
對於我們來說,src 是最熟悉的, Java 程式碼和配置檔案寫在這裡,test 目錄用來做測試,pom.xml 是 Maven 的座標檔案,就這幾個。
總結
本文主要向大家介紹了三種建立 Spring Boot 工程的方式,大家有更6的方法歡迎來討論。