一套完整的 Spring Boot 教學素材:以「線上書店 REST API」專案貫穿, 涵蓋 REST API 設計、JWT 認證授權、Hibernate/JPA + MySQL、Docker 容器化與 Postman 測試。
內容結構
Springboot/
├── bookstore-api/ # Spring Boot 專案(所有程式碼皆附詳細中文註解)
│ ├── src/main/java/... # Java 原始碼
│ ├── src/main/resources/ # application.yml 設定檔
│ ├── pom.xml # Maven 設定
│ ├── Dockerfile # Docker 映像檔建置腳本(多階段建置)
│ └── docker-compose.yml # 一鍵啟動 MySQL + API
├── postman/
│ ├── Bookstore-API.postman_collection.json # Postman 測試集合(15 個請求)
│ └── Bookstore-Local.postman_environment.json # Postman 環境檔
├── latex/ # 教材 LaTeX 原始檔(main.tex + chapters/)
├── springboot-tutorial.pdf # 教材 PDF(約 97 頁)
└── README.md
快速開始
# 方式一:本機開發(需要 JDK 17+、Maven、MySQL)
cd bookstore-api
mvn spring-boot:run
# 方式二:Docker 一鍵啟動(只需要 Docker Desktop)
cd bookstore-api
docker compose up -d --build
啟動後開啟 http://localhost:8080/api/books 即可看到書籍列表 JSON。
測試帳號(啟動時自動建立)
| 帳號 | 密碼 | 角色 |
|---|---|---|
| admin | Admin@123 | ROLE_ADMIN(可刪除書籍) |
| user | User@123 | ROLE_USER |
Postman 測試
- 開啟 Postman → Import → 匯入
postman/內的兩個 JSON 檔。 - 依序執行「1. 認證 Auth」→「2. 書籍 Books CRUD」→「3. 錯誤情境測試」。
- 登入請求會自動把 JWT 存入變數,後續請求自動帶入。
重新編譯教材 PDF
需要 TeX Live / MacTeX(XeLaTeX)與 macOS 內建中文字型:
cd latex
xelatex main.tex # 執行兩次以產生正確目錄
xelatex main.tex
環境版本
Java 17+ / Spring Boot 3.5.4 / MySQL 8.x / JJWT 0.12.6 / Docker Compose