Day 4 - 第一個 Spring Boot 程式

古古

2023/11/04


哈囉大家好,我是古古。

在前兩篇文章中,我們有分別去介紹了一下,要如何在 Mac 和 Windows 中架設 Spring Boot 的開發環境。

所以這篇文章,我們就可以來使用前面所安裝的工具,建立你的第一個 Spring Boot 程式出來了!

啟用 IntelliJ IDEA Ultimate #

創建 Spring Boot 程式的第一步,就是要先啟用 IntelliJ IDEA Ultimate 的試用期。所以大家可以先開啟 IntelliJ 的程式,這時候 IntelliJ 就會跳出下面這個視窗,要你去登入帳號,並且確認這個帳號是否已經啟用 IntelliJ 的付費版本。

如果要啟用 30 天的免費試用的話,只需要點擊右上角的「Start trial」,然後點擊下方的「Start Trial」按鈕,這樣子就可以取得 30 天的免費試用期了。

補充:點擊 Start Trial 的按鈕之後,瀏覽器會跳出一個 IntelliJ 的頁面,詢問你要不要訂閱電子報,這部分可訂閱可不訂閱,不過不管有沒有訂閱,只要直接回到 IntelliJ 程式,都是可以成功啟用 30 天試用期的。

創建第一個 Spring Boot 程式 #

建立專案、Project 設定 #

啟用 30 天試用期成功之後,我們就可以開始來創建你的第一個 Spring Boot 程式了!只要點擊 IntelliJ 中間的「New Project」,就可以去創建一個新的 Spring Boot 程式出來。

接著 IntelliJ 就會跳出下面這個視窗,要我們進行 Project 的設定。這裡先點擊左邊側邊欄的「Spring Boot」,表示我們要創建的是 Spring Boot 的程式,接著右邊就是跟著下圖一樣,選擇一樣的設定即可。

設定好右邊的 Project 設定之後,我們也可以回頭來看一下,右邊這些值分別代表什麼意思:

  • Name: 這個 Spring Boot 程式的資料夾名字。
  • Location: 這個 Spring Boot 程式預計創建出來的位置,預設是放在桌面上。
  • Language: 使用哪種語言來開發 Spring Boot 程式,預設是 Java。
  • Type: 選擇要使用哪種工具來構建 Spring Boot 程式,這部分比較複雜,因此先照著選 Maven 即可。
  • Group、Artifact、Package name: 這些值和上面的 Maven 有關,一樣是比較複雜所以可以先跳過不理他。
  • JDK、Java: 選擇想要使用的 Java 版本。
  • Packaging: 打包 Spring Boot 的方式,預設是 Jar,這部分一樣是比較複雜(牽涉到 Tomcat),所以也是可以先跳過不理他。

而當大家設定好右邊的參數設定之後,就可以按下 Next 繼續。

選擇要載入的 Spring Boot 功能 #

進到下一個視窗之後,就可以在這裡選擇想要使用的 Spring Boot 的版本、以及想要載入哪些功能進來。

像是在上圖的左上方紅框處,就可以去選擇 Spring Boot 的版本,這裡大家可以直接使用預設的最新版即可,不用特別去做調整。

而在下方的部分,則是可以去選擇要載入哪些功能到這個 Spring Boot 程式裡面,這裡我們先展開Web,然後勾選裡面的「Spring Web」即可。

勾選完成之後,就可以點擊右下角的 Create,完成 Spring Boot 程式的創建。

IntelliJ 的操作介面 #

創建好 Spring Boot 程式後,IntelliJ 會開啟一個視窗,就會根據我們剛剛的設定,去創建這個 Spring Boot 程式出來。

這時候右下角的進度條會開始跑,第一次創建會需要比較長的常見,並且需要確保網路的暢通(會下載許多 Spring Boot 的 library 下來),等到右下角的進度條跑完之後,就創建完 Spring Boot 程式了(約需要 3-5 分鐘左右)。

而在 Spring Boot 程式創建的過程中,大家也可以先熟悉一下 IntelliJ 的軟體介面,像是在 IntelliJ 的介面中:

  • 左側的部分是側邊欄,呈現了這個 demo 資料夾中的所有程式。
  • 右側則是程式的編輯區,只要在左側側邊欄對著檔案點擊兩下,就可以將程式開啟到右邊的編輯區,開始編輯這份程式。

補充:IntelliJ 的編輯區是會自動存檔的,因此大家不用擔心寫程式寫到一半沒存檔怎麼辦,揪甘心!

另外也補充一下,因為 IntelliJ 預設的字體還滿小的,所以建議大家可以調大程式編輯區的字體,保護眼睛從你我做起。

只要點擊右上方的齒輪,然後點擊「Settings」,就可以叫出偏好設定,接著在設定裡面,再點擊 Editor 中的 Font,就可以在右側設定編輯區的字型、以及字體大小了!

實作第一個 Spring Boot 程式 #

設定好 IntelliJ 的字體偏好設定、並且確認右下角的進度條跑完之後,我們終於可以開始來實作我們的第一個 Spring Boot 程式了!

首先我們先展開左側的資料夾,這時候可以看到,在 src/main/java/com.example.demo 底下,有一個 DemoApplication.class 的檔案,點擊兩下開啟這個檔案之後,在右側就可以看到他的內容。

而在這個 DemoApplication 的程式裡面,其中最重要的,就是第 6 行的 @SpringBootApplication 程式。

第一次接觸 Spring Boot 的大家,可能會覺得第 6 行這種前面帶有小老鼠 @ 的程式很奇怪,不過這種前面帶有小老鼠的寫法,在 Java 裡面稱作「annotation」,中文是翻譯為「標註」或是「註解」。

補充:一般在口語上,會稱呼這種前面帶有小老鼠的程式為「annotation」,不過由於版面因素,後續都會使用「註解」來稱呼。

第 6 行程式的這種寫法,在一般的 Java 程式中比較少看到,不過在 Spring Boot 裡面卻非常常見,所以在後續的文章中,我們也會介紹在 Spring Boog 中,好用的 annotation(註解)有哪些。

如果你是第一次接觸「註解」的話,建議可以先把「註解」想像成是賦予一個新的功能,不同的註解所提供的功能不一樣,並且他們的使用方法也會不太一樣。

所以像是第 6 行這個 @SpringBootApplication,他的用法是要加在 class 上面,而他的用途,則是表示這一個 DemoApplication.class,是這個 Spring Boot 程式的啟動入口。

也因為我們有在第 6 行加上 @SpringBootApplication,所以在第 7 行的左邊,才會出現一個播放鍵的符號,讓我們可以直接點擊這個播放鍵,去運行這個 Spring Boot 程式。

所以到這邊為止,我們就大致了解了 @SpringBootApplication 的用途(就是將該 class 變成 Spring Boot 程式的啟動入口),以及如何在 IntelliJ 中運行 Spring Boot 程式了,不過在我們真的去運行這個 Spring Boot 程式之前,我們可以先來添加一些 Java 程式在裡面。

添加 demo 程式 #

首先我們先在 com.example.demo 這個 package 上點擊右鍵,然後選擇 New,接著選擇 Java class,這樣就可以去創建一個 Java class 出來。

接著我們將這個 class 的名字,取名成 MyController。

接著在這個 MyController 裡面,添加下列的程式(這裡看不懂程式沒關係,先全部照著寫就好)。

@RestController
public class MyController {
    
    @RequestMapping("/test")
    public String test() {
        System.out.println("Hi!");
        return "Hello World";
    }
}

當大家添加完上面這段程式之後,在 IntelliJ 中的呈現效果,應該要是下面這個樣子才對。

補充:如果大家複製貼上這段程式時,發現 @RestController@RequestMapping 沒有自動被 import 進來的話,建議可以改成一行一行手動輸入程式,IntelliJ 就會自動 import 相關的 library 進來了。

大家在寫完這段程式之後,不了解 @RestController@RequestMapping 這兩個註解的意思是正常的,這兩個註解的用途,會在後面介紹到「Spring MVC」的部分時再做詳細的介紹,所以這裡就先照著寫就好。

運行 Spring Boot 程式 #

當寫好上述的 MyController 程式之後,接著就可以回到 DemoApplication.class 上,然後點擊第 7 行的播放鍵,去運行這個 Spring Boot 程式了!

所以我們只要使用左鍵,去點擊 DemoApplication 中的第 7 行的播放鍵,然後選擇「Run DemoApplication」,就可以去運行這個 Spring Boot 程式了。

點擊運行之後,這時候下面就會顯示出一個 console 的視窗,而在這個 console 視窗的最一開始,就會出現一個 Spring 的 logo,接著後面就是實時呈現出 Spring Boot 程式的運行結果。

只要看到最後一行「Started DemoApplication in 0.695 seconds」出現的時候,就表示你的 Spring Boot 程式運行成功了!

而當 Spring Boot 程式運行成功之後,這時候就可以打開 Google 瀏覽器,然後在裡面輸入 http://localhost:8080/test ,接著按下 Enter 鍵。

這時候如果頁面中有呈現「Hello World」的字樣的話,就表示你的第一個 Spring Boot 程式成功運作起來了!可喜可賀!!!

所以,我們剛剛都做了什麼? #

那到這邊,我們可以回頭來看一下,我們剛剛都做了什麼,才能夠成功的在瀏覽器中看到「Hello World」的字串。

首先我們剛剛有去新增了一個 MyController 的 class 出來,然後在裡面加上一個 test() 方法,並且在裡面去回傳一個「Hello World」的字串,同時也添加了兩個註解 @RestController@RequestMapping

這段程式的運作邏輯是這樣子的:當我們在 Google 瀏覽器輸入 http://localhost:8080/test 時,實際上 Spring Boot 程式就會去執行 MyController 裡面的 test() 方法中的程式。

也因為 Spring Boot 會去執行 MyController 裡面的 test() 方法,所以這也是為什麼在 console 上,會印出一行「Hi!」的字串,並且這個 test() 方法的返回值「Hello World」字串,會顯示在 Google 瀏覽器上面。

之所以能達到這個效果,就是多虧了 @RestController@RequestMapping 這兩個註解的幫助。

不過到目前為止,大家還不用先太深入了解這兩個註解的用法,現在只要先知道:「當我們在 Google 中輸入 http://localhost:8080/test 時,Spring Boot 程式就會去執行 MyController 中的 test() 方法」,這樣子就可以了。

至於 @RestController@RequestMapping 這兩個註解的實際用法,在後續的「Spring MVC」的部分中就會做詳細的介紹了。

補充:如果想快轉到 Spring MVC 的部分,也可以直接跳到 Day 13~Day 23 的介紹。

總結 #

所以到這邊為止,大家就成功的去創建出第一個 Spring Boot 程式了,恭喜恭喜!!

透過這個練習,也是想讓大家先感受一下,使用 Spring Boot 來寫後端程式真的是很方便,我們只需要寫不到 10 行的程式,就可以快速運行起一個後端程式了,所以使用 Spring Boot 開發的效率真的是超級無敵霹靂高!

那麼下一篇文章,我們就會開始來介紹 Spring 框架中一個非常重要的特性,也就是 IoC,那麼我們就下一篇文章見啦!

相關連結 #