【Java】SpringBoot 專案初始建置

更新於 發佈於 閱讀時間約 5 分鐘

前言

以Java的職缺而言,Spring Boot可以說是主流使用的後端框架。說來慚愧,公司內部的系統只有近年新專案才有陸續以Spring Boot進行開發,因此想學就只好靠自己囉!

慶幸的是公司有Hahow for business 的企業合作,一系列完整的入門課程可以跟著慢慢看。

實際上,平時工作流程已經是git版控、maven管理套件,三不五時應付User端資料撈取,唯一的轉換只是熟悉框架及制式的開發規範依循,其他仰賴平時trace code跟debug養成的能力,搭配兩倍速講解後自行實作,快速上手新框架並不算太難。

時間點很剛好,在年初的時候freeCodeCamp也上傳了完整課程,講解的很深入。目前先看完了前8小時的基礎,筆記一下整體架構。


架構

架構

架構

前端Client單純做http request/response發送,使用VScode extension內的thunderClient進行api測試 (會用的話,直接在terminal下curl指令也可以)


後端Server的RESTful API實作,依springboot專案常用架構進行分層

  • Controller:處理request/response,交由負責的service進行處理
  • Service:處理業務邏輯
  • Repository:處理資料存取
  • Mapper:處理DTO(Data Transfer Object),進行資料封裝


開發環境及工具

  • VScode
  • Java 21
  • Spring Boot 3.2.4


建立專案

如果是使用IntelliJ,可以直接建立SpringBoot專案,會在背後幫你從Spring Initializr完成點選的配置並下載到指定位置。一般編輯器無安裝其他擴充套件下,可以直接到下列網站,進行基本配置後下載專案。


Spring Initializr

Spring Initializr

  1. Project 以maven進行套件管理
  2. 3.0版以上的專案只支援Java17以上的版本,看來近期頁面又更新了
  3. 專案描述資訊保留預設,畢竟只是要熟悉框架
  4. dependency先選擇必要的項目,之後有缺再透過pom.xml加入後更新檔案即可


選好後可以直接點generate,產生專案的壓縮檔並下載。初次透過VScode打開解壓縮後的資料夾時,maven會把必要的依賴進行下載,會花比較多時間。

raw-image


直接執行程式跑起來看看,缺少資料庫設定而無法繼續執行,因此需要修改一下application.properties內的設定檔,另外也可以改用yaml格式進行設定撰寫。

raw-image


資料庫使用MySQL,VScode的擴充套件為Database Client JDBC,程式執行時連接到剛創建的資料庫demo_db。

raw-image


重新回到程式進入點執行,log顯示Tomcat在8080 port開始運作,可以在瀏覽器輸入http://localhost:8080/進行確認

raw-image

OK,伺服器有正常運作了,只是因為還沒有處理根目錄endpoint回傳的結果,因此出現預設的空白頁進行回傳,http狀態碼404。


實作

為確保功能正常,實作一個endpoint在http://localhost:8080/student,於瀏覽器搜索時預設以get進行請求發送。

raw-image

新增一個StudentController的類別,須加上@RestController進行註冊,讓Spring container管理bean的生命週期

getStudent方法使用@GetMapping,指定路徑到/student的請求都發來這裡進行處理,回傳Student物件。

使用record而不是原始的class,省去另外撰寫toString、equals、getter、setter等瑣碎的部分。


重新啟動程式確認一下結果。

raw-image

Spring Boot內整包的依賴內有個第三方套件Jackson,在資料回傳給前端時,會將物件轉換成JSON格式進行回傳,不用自行再另外對物件序列化進行處理。


也可以使用thunderClient發送get request,得到同樣的結果。

raw-image


至於資料庫存取的操作,JPA(Java Persistence API)使用要留到下一篇囉。


參考資源

  • Hahow for business - Java 工程師必備!Spring Boot 零基礎入門
  • FreeCodeCamp.org - Spring Boot & Spring Data JPA – Complete Course


留言
avatar-img
留言分享你的想法!
avatar-img
Err500
12會員
77內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2025/03/16
這篇文章說明如何使用Spring JDBC Template從資料庫取得資料,並將其輸出為CSV檔案。文中詳細介紹了系統架構、程式實作,以及測試結果,並討論了未來可能的擴展。
Thumbnail
2025/03/16
這篇文章說明如何使用Spring JDBC Template從資料庫取得資料,並將其輸出為CSV檔案。文中詳細介紹了系統架構、程式實作,以及測試結果,並討論了未來可能的擴展。
Thumbnail
2025/03/15
本文比較IntelliJ IDEA、VSCode和Eclipse三種Java開發工具的優缺點,針對不同使用者族群提供建議。IntelliJ IDEA適合初學者,VSCode輕量且具彈性,Eclipse則適合舊專案開發。
Thumbnail
2025/03/15
本文比較IntelliJ IDEA、VSCode和Eclipse三種Java開發工具的優缺點,針對不同使用者族群提供建議。IntelliJ IDEA適合初學者,VSCode輕量且具彈性,Eclipse則適合舊專案開發。
Thumbnail
2025/02/21
本文介紹瞭如何在Windows系統中,透過設定.bashrc文件輕量級地配置JDK環境變數,解決不同專案使用不同JDK版本的問題,並涵蓋了環境變數的概念、用途及其他注意事項。
Thumbnail
2025/02/21
本文介紹瞭如何在Windows系統中,透過設定.bashrc文件輕量級地配置JDK環境變數,解決不同專案使用不同JDK版本的問題,並涵蓋了環境變數的概念、用途及其他注意事項。
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
此章節旨在引導讀者如何建立Java開發環境,包括安裝JDK、使用命令行工具編寫和運行Java程式,以及如何在Visual Studio Code、IntelliJ IDEA和Eclipse等IDE中設置和使用Java環境。
Thumbnail
此章節旨在引導讀者如何建立Java開發環境,包括安裝JDK、使用命令行工具編寫和運行Java程式,以及如何在Visual Studio Code、IntelliJ IDEA和Eclipse等IDE中設置和使用Java環境。
Thumbnail
此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
Thumbnail
此章節旨在介紹Java的基本語法、註解和變數的使用。透過學習,讀者將了解Java程式的基本結構、程式進入點的定義、如何撰寫單行和多行註解,以及如何宣告和初始化變數。
Thumbnail
這篇文章的目的是對Java程式設計語言進行介紹,包括它的特性、應用範疇、主要使用者,以及相關的學習資源和常見的庫與框架。此外,它也提供了一些學習Java的渠道,以及與Java相關的其他知識。
Thumbnail
這篇文章的目的是對Java程式設計語言進行介紹,包括它的特性、應用範疇、主要使用者,以及相關的學習資源和常見的庫與框架。此外,它也提供了一些學習Java的渠道,以及與Java相關的其他知識。
Thumbnail
這篇的DevOps發佈系統是以Spring Cloud微服務(微服務)為背景;由GitLab、Harbor與Kubernetes組成。 GitLab負責版本管理與CI/CD(CI/CD)。 Harbor負責Docker([Docker]介紹) Image的儲存與發佈。 Kubernetes([
Thumbnail
這篇的DevOps發佈系統是以Spring Cloud微服務(微服務)為背景;由GitLab、Harbor與Kubernetes組成。 GitLab負責版本管理與CI/CD(CI/CD)。 Harbor負責Docker([Docker]介紹) Image的儲存與發佈。 Kubernetes([
Thumbnail
核心元件 Spring Boot:Spring Cloud的基礎框架。 Spring Cloud Starters:Spring Boot的依賴管理。 Consul:微服務系統的註冊中心。 Eureka:微服務系統的註冊中心。 Feign:簡化微服務之間的溝通方式。 Ribbon:處理程
Thumbnail
核心元件 Spring Boot:Spring Cloud的基礎框架。 Spring Cloud Starters:Spring Boot的依賴管理。 Consul:微服務系統的註冊中心。 Eureka:微服務系統的註冊中心。 Feign:簡化微服務之間的溝通方式。 Ribbon:處理程
Thumbnail
部署Consul服務 docker run --name consul -p xxxx:xxxx -v /tmp/consul/conf/:/consul/conf/ -v /tmp/consul/data/:/consul/data/ -d consul 於pom.xml設定Spring
Thumbnail
部署Consul服務 docker run --name consul -p xxxx:xxxx -v /tmp/consul/conf/:/consul/conf/ -v /tmp/consul/data/:/consul/data/ -d consul 於pom.xml設定Spring
Thumbnail
建立Maven專案 於pom.xml設定Spring Boot <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://
Thumbnail
建立Maven專案 於pom.xml設定Spring Boot <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
學習Spring Boot是Java工程師必備技能,文章分享瞭如何自學並快速上手Spring Boot開發,包括架構、開發工具、專案建立以及實作過程。
Thumbnail
學習Spring Boot是Java工程師必備技能,文章分享瞭如何自學並快速上手Spring Boot開發,包括架構、開發工具、專案建立以及實作過程。
Thumbnail
本課程學習如何使用 Android Studio 建立的第一個應用程式專案:Hello World。
Thumbnail
本課程學習如何使用 Android Studio 建立的第一個應用程式專案:Hello World。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News