iT邦幫忙

2023 iThome 鐵人賽

DAY 4
3
Software Development

Spring Boot 零基礎入門系列 第 4

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

  • 分享至 

  • xImage
  •  

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

哈囉大家好,我是古古。

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

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

啟用 IntelliJ IDEA Ultimate


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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036dr0ToRjTYI.png

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036X7LyHF5H3a.png

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

創建第一個 Spring Boot 程式


建立專案、Project 設定

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036fjikKh7CJp.png

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036e717Pqllvg.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/20240924/20151036LQmyjdeYOT.png

像是在上圖的左上方紅框處,就可以去選擇 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 資料夾中的所有程式。
  • 右側則是程式的編輯區,只要在左側側邊欄對著檔案點擊兩下,就可以將程式開啟到右邊的編輯區,開始編輯這份程式。

https://ithelp.ithome.com.tw/upload/images/20240924/20151036jQZMw4JANt.png

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

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

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

https://ithelp.ithome.com.tw/upload/images/20240925/20151036M8NFvdE0jQ.png

https://ithelp.ithome.com.tw/upload/images/20240924/20151036q5UKEXVQVy.png

實作第一個 Spring Boot 程式


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

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

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036vpqBrWS9Ti.png

第一次接觸 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 程式。

https://ithelp.ithome.com.tw/upload/images/20240924/20151036sSqA3AGn3Y.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/20240924/20151036iaesl1itrx.png

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036i9A9Z6m0Nl.png

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

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

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036bgHgyuqUaq.png

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

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

運行 Spring Boot 程式

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

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

https://ithelp.ithome.com.tw/upload/images/20240925/201510365XgrasvpHS.png

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

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036c6vwT3VVN7.png

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

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036OR5NtGjJ0O.png

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

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

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

https://ithelp.ithome.com.tw/upload/images/20240924/20151036O9DiRA3dzK.png

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

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

https://ithelp.ithome.com.tw/upload/images/20240925/201510366UpOvBzAPG.png

之所以能達到這個效果,就是多虧了 @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,那麼我們就下一篇文章見啦!

相關連結



上一篇
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邦新手 3 級 ‧ 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邦新手 3 級 ‧ 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邦新手 3 級 ‧ 2024-02-01 18:59:43 檢舉

噢噢噢感謝分享!

我要留言

立即登入留言