開始在 Mac 上開發 Spring boot

快速介紹如何在 MacOS 建置 Spring boot 的開發環境!

先安裝 OpenJDK 11 和 IntelliJ

1
2
3
4
5
# OpenJDK 11
brew cask install adoptopenjdk11

# IntelliJ (有裝 JetBrains Toolbox 也可以用這個裝)
brew cask install intellij-idea-ce

設定 IntelliJ

開啟 IntelliJ,點選右下角的 Configure 開始設定

Perferences

調整 Continuation ident

PreferencesEditorCode StyleJava 裡的 Continuation ident 改成 4

開啟 Annotation Processors

PreferencesBuild, Execution, DeploymentCompilerAnnotation Processors 裡的 Enable annotation processing 勾起來

安裝 IntelliJ Lombok plugin

進入 PreferencesPlugins 搜尋 lombok,然後安裝 IntelliJ Lombok plugin

Structure for New Projects

環境預設使用 Java 11

  • Projects SDK 改成 11 以上的版本 (若無 SDK 先按 New... 新增)
  • Project language level 改成 11 - Local variable syntax for lambda parameters

產生 & 匯入 Spring boot 專案

先在 Spring Initializr 把專案產生,下載回來後解壓縮即可匯入 IntelliJ。

產生 Spring boot 專案

進入 Spring Initializr,然後進行下列調整後,按最下面的那個按鈕 Generate the project... 來下載專案壓縮檔。

  • Project: Gradle Project
  • Language: Java
  • Spring Boot: 2.1.5
  • Project Metadata: 展開 Options,把 Java 的選項改為 11,其他的不用改
  • Dependencies: 至少加入 Spring Web Starter, Lombok

匯入 Spring boot 專案

把剛剛下載下來的 Spring boot 專案解壓縮後,然後跳回 Welcome to IntelliJ IDEA 點擊畫面中間的 Import Project,接著選取目錄裡的 build.gradle 後點擊右下角的 Open

開啟 build.gradle 後會進入下圖這個畫面,基本上應該不需要動什麼,只要確認有選取 User default Gradle wrapper (recommended),且 Gradle JVM 這個選項是 openjdk 11 即可點擊右下角的 OK

看到下面這個畫面表示已經成功開啟專案,IntelliJ 正在進行環境的初始化,這個時候點擊左上角的 1:Project (或按 ⌘ + 1) 即可看到專案目錄的內容,但建議等右下角的 2 processes running... 跑完再進行其他操作。

執行專案

第一次啟動

開啟 DemoApplication.java,點擊 Line 7 或 Line 9 行號旁邊的綠色三角形,然後看你是想 Run, Debug 還是 Run with Coverage,點擊其中任一項目就會開始執行了。

啟動完成

看到 Console 出現 Started DemoApplication in xxx seconds... 就表示專案已經正確的被跑起來了。第一次執行後 IntelliJ 會自動產生 Run/Debug Configurations,所以之後如果要執行、重啟或中止,都可由右上或左下的 Tool bar 來控制。

查看 Web Service

啟動完成後,可以由 http://127.0.0.1:8080/ 查看 Web Service 是否有正常啟動。不過目前專案並未指定 / 這個路徑對應的 Controller,所以只會看到下圖這個錯誤訊息的畫面。

結語

經由上面幾個步驟已經可以設定好一個可以執行的 Spring boot 專案了,可以試著寫看看 Controller 或是自行定義 Bean,如果想要跑單純的 Java,只要先把 DemoApplication.java 裡的 SpringApplication.run(DemoApplication.class args); 先註解掉,然後直接把程式寫在這個 Method 直接執行就可以了。