iT邦幫忙

2023 iThome 鐵人賽

DAY 4
1
Software Development

Spring Boot 零基礎入門系列 第 4

Spring Boot 零基礎入門 (4) - 第一個 Spring Boot 程式

  • 分享至 

  • xImage
  •  

賀!此系列文榮獲 2023 iThome 鐵人賽《優選》獎項,正在規劃出書中,感謝大家的支持🙏,同名課程「Java 工程師必備!Spring Boot 零基礎入門」也已在 Hahow 平台上架

哈囉大家好,我是古古

在上兩篇文章中,有先介紹如何在 Mac 和 Windows 中架設開發環境,那麼接著這篇文章,就會使用前面所安裝的工具,建立你的第一個 Spring Boot 程式

啟用 IntelliJ IDEA Ultimate


在上兩篇文章中,有先帶大家安裝了 IntelliJ IDEA Ultimate (付費版) 的程式,點擊兩下打開 IntelliJ 之後,IntelliJ 會跳出這個視窗,要求大家登入帳號,並且確認該帳號是否已啟用 IntelliJ 的付費版本

https://ithelp.ithome.com.tw/upload/images/20230918/20151036MVyWHJDuNx.png

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

https://ithelp.ithome.com.tw/upload/images/20230918/20151036t7dnAL2Yci.png

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

創建第一個 Spring Boot 程式


啟用 30 天試用版成功之後,就可以開始來創建 Spring Boot 程式了

點擊 IntelliJ 中間的「New Project」,就可以開始去創建一個新的 Spring Boot 程式

https://ithelp.ithome.com.tw/upload/images/20230918/20151036EQg8mZt1OR.png

設定 Spring Boot 程式

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

https://ithelp.ithome.com.tw/upload/images/20230918/20151036wlRuIaq0p6.png

這邊也補充一下,大家在設定上圖中的「3. JDK」時,可能會找不到 temurin-17 在哪裡,這時只要點開 JDK 那個選項,然後在下方會有一個「Detected SDKs」的區塊,這裡就是你電腦上有安裝的 Java 版本,只要選中其中的「temurin-17.jdk」就可以了

https://ithelp.ithome.com.tw/upload/images/20230918/20151036gzij84T3Ue.png

另外我們也可以回頭來看一下這個 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 的版本,以及想要載入哪些功能進來

https://ithelp.ithome.com.tw/upload/images/20230918/20151036EDU6UgUY2r.png

像是在左上方的紅框處,就可以去選擇 Spring Boot 的版本,大家可以直接使用預設的最新版即可,不用特別去改變

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

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

IntelliJ 的操作介面


創建好 Spring Boot 程式後,IntelliJ 會開啟一個視窗,根據我們剛剛的設定,去創建這個 Spring Boot 程式出來,這時候右下角的進度條會開始跑,第一次創建會需要比較長的,並且需要確保網路的暢通(會下載許多 Spring Boot 的 library 下來),等到右下角的進度條跑完之後,就創建完成了(約需要 3-5 分鐘左右)

https://ithelp.ithome.com.tw/upload/images/20230918/20151036WEqfq70gmQ.png

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

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

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

https://ithelp.ithome.com.tw/upload/images/20230918/2015103692ZLo8XaOZ.png

另外也補充一下,因為 IntelliJ 預設的字體還滿小的,所以建議大家可以調大程式編輯區的字體,只要點擊左上方的「Preferences」,就可以叫出偏好設定,接著點擊 Editor 中的 Font,就可以在右側設定編輯區的字型、以及字體大小了!

https://ithelp.ithome.com.tw/upload/images/20230918/20151036hL8nihUUbk.png

第一個 Spring Boot 程式


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

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

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

https://ithelp.ithome.com.tw/upload/images/20230918/201510361sr8XtmsHr.png

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

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

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

第一次接觸註解的大家,基本上可以把註解想像成是賦予一個新的功能,不同的註解所提供的功能不一樣,並且他們的使用方法也會有點不太一樣

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

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

https://ithelp.ithome.com.tw/upload/images/20230918/20151036H3Fpej1BwX.png

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

添加 demo 程式

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

https://ithelp.ithome.com.tw/upload/images/20230919/20151036c3KptF5zIR.png

然後我們將這個 class 的名字取名成 MyController

https://ithelp.ithome.com.tw/upload/images/20230919/20151036n9mmMIxxHc.png

接著在這個 MyController 裡面,添加下列的程式

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

補充:如果複製貼上發現 @RestController@RequestMapping 的 library 沒有自動載入進來的話,建議可以改成是一行一行手動輸入程式

https://ithelp.ithome.com.tw/upload/images/20231018/20151036ufDW4g4qGY.png

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

運行 Spring Boot 程式

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

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

https://ithelp.ithome.com.tw/upload/images/20230919/20151036xkJor737vt.png

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

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

https://ithelp.ithome.com.tw/upload/images/20230919/20151036nJ8kXkdFqf.png

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

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

https://ithelp.ithome.com.tw/upload/images/20230919/20151036REnuKALNP8.png

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

那到這邊,我們可以回頭來看一下我們剛剛都做了什麼

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

https://ithelp.ithome.com.tw/upload/images/20230919/20151036M9S2uvbnRO.png

那這段程式的運作邏輯是這樣子的,當我們在 Google 瀏覽器輸入 http://localhost:8080/test 時,實際上 Spring Boot 程式就會去執行 MyController 裡面的 test() 方法裡面的程式,所以這也是為什麼在 console 上會印出一行「Hi!」,並且這個 test() 方法的返回值「Hello World」字串,就會顯示在 Google 瀏覽器上面

https://ithelp.ithome.com.tw/upload/images/20230919/201510365NpBgzwcE4.png

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

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

至於 @RestController@RequestMapping 這兩個註解的實際用法,會在後續的「Spring MVC」文章中再做介紹

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

總結


所以到這邊為止,大家就成功的去創建出第一個 Spring Boot 程式了,恭喜恭喜!!透過這個練習,其實也是讓大家可以去感受一下,用 Spring Boot 寫後端程式是真的很方便,只需要寫不到 10 行的程式,就可以快速運行起一個後端程式了,效率真的是 up up up(自從我用了 Spring Boot,考試都考 💯 分)

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

相關連結



上一篇
Spring Boot 零基礎入門 (3) - 開發環境安裝(Windows 版)
下一篇
Spring Boot 零基礎入門 (5) - Spring IoC 簡介
系列文
Spring Boot 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
Will 保哥
iT邦新手 2 級 ‧ 2023-09-24 10:26:49

annotation 翻譯成「註解」感覺很容易跟 comment 衝突,容易誤解。

古古 iT邦新手 4 級 ‧ 2023-09-25 08:11:05 檢舉

感謝補充!有關於 annotation 的用語,也有在 Spring Boot 零基礎入門 (4) - 第一個 Spring Boot 程式 中補充提到:

Java 中的 annotation,中文是翻譯為「標註」或是「註解」

一般口語上會稱呼這種前面帶有小老鼠的程式為 annotation,不過由於版面因素,因此後續系列文會使用「註解」來稱呼

0
asd123159
iT邦新手 4 級 ‧ 2023-10-08 23:05:15
古古 iT邦新手 4 級 ‧ 2023-10-08 23:26:23 檢舉

噢噢感謝分享!

0

如果大家碰到這樣的錯誤的話
錯誤: 找不到或無法載入主要類別 com.example.demo.DemoApplication
原因: java.lang.ClassNotFoundException: com.example.demo.DemoApplication

請參考這篇文章
https://stackoverflow.com/questions/17300318/error-classnotfoundexception-in-intellij-idea
大意:

  1. 同時按 Ctrl+Shift+Alt+S
  2. 在最右邊 (Add Content root) 中找到 已經存在到 Sources Folders,將已經設定好的刪除 (有小叉叉可以按)
  3. 於 左邊點選找到 src/main/Java ,然後點Java那個資料夾後再點選上方的 Sources 後下 OK
古古 iT邦新手 4 級 ‧ 2024-02-01 18:59:43 檢舉

噢噢噢感謝分享!

我要留言

立即登入留言