Spring BootJava 21Spring Framework深入淺出

Spring Boot 深入淺出:從看懂一個請求,到能驗證一次改動

··閱讀約 4 分鐘

打開舊專案,看得懂 Java 語法,卻不確定 Controller 由誰建立、設定從哪裡進來,或 @Transactional 到底包住哪幾行。這時再多背幾個 annotation,往往還是接不起執行流程。這個系列從同一個工單 API 往下走,每次只多理解一個邊界。

接著學:JBoss EAP 獨立系列,基礎與實作

先決條件:Java 語法夠用即可

需要能閱讀 class、constructor、interface、例外與泛型。看到 record,可以先理解成會產生欄位存取方法、equals 等功能的資料類別;本例用 ticket.id() 取值。HTTP 部分會解釋 method、status 與 JSON;不要求你先懂 Spring、Hibernate 或 EAP。Maven 需要能在終端執行,IDE 使用哪一套不影響順序。

本系列固定使用 Java 21 與 Boot 3.5.16,配合這次舊系統升級的目標。這不是宣稱它是最新版本。不要把 Boot 4 的 starter、測試 import 或 Servlet 要求直接貼進這個專案。官方文件查核日為 2026-10-04;範例的實際測試範圍放在下載檔的 VALIDATION.md。

六堂課,各帶走一個可以自己回答的問題

課程學完要能說明範例位置
01 啟動main 怎麼變成可以接 HTTP 的程式pom.xml、LabApplication
02 物件誰建立 Service,為什麼不用自己 newController/Service constructor
03 設定同一個 key 出現三次,最後誰生效LabProperties、兩份 properties
04 HTTPJSON 如何進入方法,400 與 404 在哪裡決定CreateTicket、ApiErrors
05 交易第二次寫入失敗,第一次是否真的回滾TicketStore、createBatch
06 驗證哪些測試證明什麼,JAR 與 WAR 差在哪LabIntegrationTest、打包產物
照順序讀;已熟悉的部分可以直接跳課。
01:啟動與第一個 API02:Bean、注入與自動設定03:設定、Profile 與覆寫04:HTTP、驗證與錯誤契約05:資料庫與交易回滾06:測試、除錯與部署邊界

共用範例:一張工單走完 HTTP 與資料庫

text
HTTP → TicketController → TicketService → TicketStore → H2
                      ↘ ApiErrors → HTTP error response

下載檔是完整的小型專案,不是六份互相衝突的程式片段。第一課只看啟動與 ping,後面才打開其餘類別。工單只含 id 和 title;使用記憶體 H2 與 JDBC,讓 SQL、提交與回滾可以直接觀察。它沒有接 DB2、MQ,也沒有模擬公司的業務資料。

這是一個只綁定本機位址、沒有登入功能的學習程式。它沒有展示完整授權、稽核、持久化資料遷移或正式環境配置;不要把「教學可以跑」當成「可以對外部署」。JPA/Hibernate 與 Spring Security 需要另有練習,這裡會指出它們位於哪一層。

讀法:先預測,再動手,最後對照證據

每課先看問題與一小段程式,預測結果後再執行練習。答案放在練習後面,方便停下來自己想。卡住時只追一條路徑:例如 400 是 JSON 解析、驗證還是 Service 造成。不要一次請 AI 解釋整個 repo,也不必把每一行都抄成筆記。

可以請 AI:「只根據這三個檔案,說明這個請求的入口、物件來源與失敗分支;指出沒有證據的地方。」隔天再試著不看筆記講出路徑。能指出程式與測試,才知道自己理解的是這個專案,而不是一段通用摘要。

Spring Boot 之後,再學 EAP/JBoss

下一階段會從應用伺服器的責任開始:部署 WAR/EAR、模組載入、JNDI、DataSource、EJB/MDB、交易與管理 log。JBoss 是產品家族與歷史名稱,JBoss EAP 是 Red Hat 的企業應用平台;它們不是必須重複學兩遍的兩套入門。先把應用內部學會,再看外部容器接手哪些責任。

需要先對照整批升級:閱讀 EAP × Boot 升級地圖下載本系列完整工單 API 範例(ZIP)下一課:01:啟動與第一個 API

參考資料