一套完整的 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 測試

  1. 開啟 Postman → Import → 匯入 postman/ 內的兩個 JSON 檔。
  2. 依序執行「1. 認證 Auth」→「2. 書籍 Books CRUD」→「3. 錯誤情境測試」。
  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