賀!此系列文榮獲 2023 iThome 鐵人賽《優選》獎項,正在規劃出書中,感謝大家的支持🙏,同名課程「Java 工程師必備!Spring Boot 零基礎入門」也已在 Hahow 平台上架
哈囉大家好,我是古古。
在前兩篇文章中,我們有分別去介紹了一下,要如何在 Mac 和 Windows 中架設 Spring Boot 的開發環境。
所以這篇文章,我們就可以來使用前面所安裝的工具,建立你的第一個 Spring Boot 程式出來了!
創建 Spring Boot 程式的第一步,就是要先啟用 IntelliJ IDEA Ultimate 的試用期。所以大家可以先開啟 IntelliJ 的程式,這時候 IntelliJ 就會跳出下面這個視窗,要你去登入帳號,並且確認這個帳號是否已經啟用 IntelliJ 的付費版本。
如果要啟用 30 天的免費試用的話,只需要點擊右上角的「Start trial」,然後點擊下方的「Start Trial」按鈕,這樣子就可以取得 30 天的免費試用期了。
補充:點擊 Start Trial 的按鈕之後,瀏覽器會跳出一個 IntelliJ 的頁面,詢問你要不要訂閱電子報,這部分可訂閱可不訂閱,不過不管有沒有訂閱,只要直接回到 IntelliJ 程式,都是可以成功啟用 30 天試用期的。
啟用 30 天試用期成功之後,我們就可以開始來創建你的第一個 Spring Boot 程式了!只要點擊 IntelliJ 中間的「New Project」,就可以去創建一個新的 Spring Boot 程式出來。
接著 IntelliJ 就會跳出下面這個視窗,要我們進行 Project 的設定。這裡先點擊左邊側邊欄的「Spring Boot」,表示我們要創建的是 Spring Boot 的程式,接著右邊就是跟著下圖一樣,選擇一樣的設定即可。
設定好右邊的 Project 設定之後,我們也可以回頭來看一下,右邊這些值分別代表什麼意思:
而當大家設定好右邊的參數設定之後,就可以按下 Next 繼續。
進到下一個視窗之後,就可以在這裡選擇想要使用的 Spring Boot 的版本、以及想要載入哪些功能進來。
像是在上圖的左上方紅框處,就可以去選擇 Spring Boot 的版本,這裡大家可以直接使用預設的最新版即可,不用特別去做調整。
而在下方的部分,則是可以去選擇要載入哪些功能到這個 Spring Boot 程式裡面,這裡我們先展開Web,然後勾選裡面的「Spring Web」即可。
勾選完成之後,就可以點擊右下角的 Create,完成 Spring Boot 程式的創建。
創建好 Spring Boot 程式後,IntelliJ 會開啟一個視窗,就會根據我們剛剛的設定,去創建這個 Spring Boot 程式出來。
這時候右下角的進度條會開始跑,第一次創建會需要比較長的常見,並且需要確保網路的暢通(會下載許多 Spring Boot 的 library 下來),等到右下角的進度條跑完之後,就創建完 Spring Boot 程式了(約需要 3-5 分鐘左右)。
而在 Spring Boot 程式創建的過程中,大家也可以先熟悉一下 IntelliJ 的軟體介面,像是在 IntelliJ 的介面中:
補充:IntelliJ 的編輯區是會自動存檔的,因此大家不用擔心寫程式寫到一半沒存檔怎麼辦,揪甘心!
另外也補充一下,因為 IntelliJ 預設的字體還滿小的,所以建議大家可以調大程式編輯區的字體,保護眼睛從你我做起。
只要點擊右上方的齒輪,然後點擊「Settings」,就可以叫出偏好設定,接著在設定裡面,再點擊 Editor 中的 Font,就可以在右側設定編輯區的字型、以及字體大小了!
設定好 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 程式在裡面。
首先我們先在 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」的部分時再做詳細的介紹,所以這裡就先照著寫就好。
當寫好上述的 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,那麼我們就下一篇文章見啦!
annotation 翻譯成「註解」感覺很容易跟 comment 衝突,容易誤解。
感謝補充!有關於 annotation 的用語,也有在 Spring Boot 零基礎入門 (4) - 第一個 Spring Boot 程式 中補充提到:
Java 中的 annotation,中文是翻譯為「標註」或是「註解」
一般口語上會稱呼這種前面帶有小老鼠的程式為 annotation,不過由於版面因素,因此後續系列文會使用「註解」來稱呼
如果大家碰到這樣的錯誤的話
錯誤: 找不到或無法載入主要類別 com.example.demo.DemoApplication
原因: java.lang.ClassNotFoundException: com.example.demo.DemoApplication
請參考這篇文章
https://stackoverflow.com/questions/17300318/error-classnotfoundexception-in-intellij-idea
大意:
噢噢噢感謝分享!