大家好,我是二哥呀!
學 Java,自然少不了 Spring Boot 的學習!作為一名 Java 技術博主,已經被催了 N 多次 Spring Boot 的教程了,再不更新真有點鴿的不成樣子——鴿上加鴿,

因此我打算在接下來一段時間里間歇性地輸出一些 Spring Boot 方面的文章,包括一些非常入門級的教程和一些非常優質的 Spring Boot 專案推薦,已經身經百戰的 starter 們忽略就好,
《Java 程式員進階之路》在 GitHub 上獲得了 872 個 star,還沒去點亮的小伙伴去點一下,讓二哥也體驗一下 1k star 的快樂,畢竟還有 128 個,不遠了,
https://github.com/itwanger/toBeBetterJavaer
一、Spring Boot 專案搭建
Spring 官方提供了 Spring Initializr 的方式來創建 Spring Boot 專案,網址如下:
https://start.spring.io/
打開后的界面如下:

可以將 Spring Initializr 看作是 Spring Boot 專案的初始化向導,它可以幫助開發人員在一分鐘之內創建一個 Spring Boot 骨架,非常的傻瓜式,
來解釋一下 Spring Initializr 初始化界面中的關鍵選項,
1)Project:專案的構建方式,可以選擇 Maven 和 Gradle(構建腳本基于 Groovy 或者 Kotlin 等語言來撰寫,而不是傳統的 XML),默認 Maven 即可,
2)Language:專案的開發語言,可以選擇 Java、Kotlin(JetBrains開發的可以在 JVM 上運行的編程語言)、Groovy(可以作為 Java 平臺的腳本語言來使用),默認 Java 即可,
3)Spring Boot:專案使用的 Spring Boot 版本,默認版本即可,比較穩定,
4)Project Metada:專案的基礎設定,包括包名、打包方式、JDK 版本等,
- Group:專案所屬組織的識別符號,比如說 vip.r2java;
- Artifact:專案的識別符號,比如說 tobebetterjavaer;
- Name:默認保持和 Artifact 一致即可;
- Description: 專案的描述資訊,比如說《Java 程式員進階之路》;
- Package name:專案包名,根據Group和Artifact自動生成即可,
- Packaging: 專案打包方式,可以選擇 Jar 和 War(SSM 時代,JavaWeb 專案通常會打成 War 包,放在 Tomcat 下),Spring Boot 時代默認 Jar 包即可,因為 Spring Boot 可以內置 Tomcat、Jetty、Undertow 等服務容器了,
- Java:專案選用的 JDK 版本,選擇 11 或者 8 就行,
5)Dependencies:專案所需要的依賴和 starter,如果不選擇的話,默認只有核心模塊 spring-boot-starter 和測驗模塊 spring-boot-starter-test,
好,接下來我們使用 Spring Initializr 初始化一個 Web 專案,Project 選擇 Maven,Spring Boot 選擇 2.6.1,Java 選擇 JDK 8,Dependencies 選擇「Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container.」

這預示著我們會采用 SpringMVC 并且使用 Tomcat 作為默認服務器來開發一個 Web 專案,
然后點擊底部的「generate」按鈕,就會生成一個 Spring Boot 初始化專案的壓縮包,

二、Spring Boot 專案結構分析
解開壓縮包,并匯入到 Intellij IDEA 中,可以看到 Spring Boot 專案的目錄結構,

可以使用 tree -CfL 3 命令以樹狀圖列出目錄的內容:

- src/main/java 為專案的開發目錄,業務代碼在這里寫,
- src/main/resources 為組態檔目錄,靜態檔案、模板檔案和組態檔都放在這里,
- 子目錄 static 用于存放靜態資源檔案,比如說 JS、CSS 圖片等,
- 子目錄 templates 用于存放模板檔案,比如說 thymeleaf 和 freemarker 檔案,
- src/test/java 為測驗類檔案目錄,
- pom.xml 用來管理專案的依賴和構建,
三、啟動 Spring Boot 專案
第一次啟動,我個人習慣在 main 類中右鍵,在彈出的右鍵選單這種選擇「run … main()」啟動,

經過 2.5s 左右的 build 后,專案啟動成功了,可以在日志中看到 Web 專案是以 Tomcat 為容器的,默認埠號為 8080,根路徑為空,

這要比傳統的 Web 專案省事省心省力,不需要打成 war 包,不需要把 war 包放到 Tomcat 的 webapp 目錄下再啟動,
那如果想把專案打成 jar 包放到服務器上,以 java -jar xxx.jar 形式運行的話,該怎么做呢?
打開 Terminal 終端, 執行命令 mvn clean package,等待打包結果,

我們的專案在初始化的時候選擇的是 Maven 構建方式,所以 pom.xml 檔案中會引入 spring-boot-maven-plugin 插件,
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
因此我們就可以利用 Maven 命令來完成專案打包,打包完成后,進入 target 目錄下,就可以看到打包好的 jar 包了,

利用終端工具 Tabby,將 jar 包上傳到服務器,

執行 java -jar tobebetterjavaer-0.0.1-SNAPSHOT.jar 命令,

what??????竟然沒有安裝 JDK,好吧,為了帶白票阿里云服務器的小伙伴一起學習 Linux,我下了血本自己買了一臺零添加的服務器,
PS:需要在 centos 環境下安裝 JDK 的小伙伴可以看這篇,
https://segmentfault.com/a/1190000015389941
安裝好 JDK 后,再次執行命令就可以看到 Spring Boot 專案可以正常在服務器上跑起來了,

四、開發第一個 Spring Boot 專案
專案既然啟動成功了,我們在瀏覽器里訪問 8080 埠測驗下吧,

咦,竟然 Whitelabel 了,這個 404 頁面是 Spring Boot 默認的錯誤頁面,表示我們的請求在 Web 服務中不存在,
那該怎么辦呢?
我們來增加一個 Controller 檔案,用來處理 Web 請求,內容如下,
@Controller
public class HelloController {
@GetMapping("/hello")
@ResponseBody
public String hello() {
return "hello, springboot";
}
}
這段代碼的業務邏輯非常簡單,用戶發送 hello 請求,服務器端回應一個“hello, springboot”回去,

OK,現在可以訪問到了,也就表明我們的第一個 Spring Boot 專案開發完成了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/392094.html
標籤:java
