🚀 一个项目,四种写法。从 Java 零基础到 Spring Boot + Vue3 + Docker 全栈部署,每一代都新增 16 项企业级工程实践。


先看四代演进(一张图)

四代演进流程图

这四代代码都在同一个仓库里,每一代都是独立可运行的完整项目。


为什么做这个项目?

市面上的「学生管理系统」教程要么太简单(一个 Servlet 增删改查就结束了),要么直接丢一个 Spring Boot 脚手架让人抄。

没有一个项目能展示「从菜鸟到能干活」的完整成长路径。

所以我做了这个——四个版本,从 Java 基础语法一直写到 Docker 部署,每一代都是一个台阶。


四代对比(一张表看懂)

维度 🏘️ 新手村 🏙️ 进阶版 🚀 宇宙版 ☄️ 爆炸版
界面 控制台 控制台表格 浏览器 SPA Vue3 + Vite + TS
存储 ArrayList SQLite H2 MySQL 8.0
缓存 Redis 7
ORM JDBC JPA JPA + Specification
安全 明文存储 BCrypt 哈希 JWT 单 Token JWT 双 Token 旋转
对象转换 MapStruct (编译期)
分页 前端假分页 前端假分页 后端真分页
数据库迁移 Flyway
API 文档 Knife4j/Swagger
异常处理 printStackTrace RuntimeException RuntimeException 全局异常处理器
参数校验 手动 if 手动 if @Valid 注解
日志 System.out System.err 手动调用 AOP 自动切面 + IP
测试 JUnit5 + Mockito
部署 javac mvn exec mvn spring-boot:run Docker Compose
CI/CD GitHub Actions
前端工程 3 个 CDN 文件 Vite + TS + Pinia

我最满意的版本:☄️ 爆炸版

这是终版,也是我认为「一份能写进简历的项目」应该有的样子。

架构一览

┌─────────────────────────────────────────────┐
│              🌐 Nginx :80                    │
│  ┌──────────────────┐  ┌──────────────────┐ │
│  │ Vue 3 + Vite + TS│  │ Spring Boot :8080│ │
│  │ Element Plus     │  │ ┌──────────────┐ │ │
│  │ ECharts          │  │ │ Security+JWT │ │ │
│  │ Pinia            │  │ │ AOP 日志     │ │ │
│  └──────────────────┘  │ │ MapStruct    │ │ │
│                         │ └──────────────┘ │ │
│  ┌────────┐ ┌────────┐ │                    │ │
│  │ MySQL 8│ │ Redis 7│◄┼────────────────────┤ │
│  └────────┘ └────────┘ │                    │ │
│    ▲ Flyway  ▲ Cache   │                    │ │
└─────────────────────────────────────────────┘

一键启动

cd bigbang
docker-compose up -d
# 打开 http://localhost
# 管理员: admin / Admin@123
# Swagger: http://localhost:8080/doc.html

16 项工程实践

# 实践 技术
1 多环境配置 application-{dev,docker,ci}.yml
2 数据库版本迁移 Flyway V1 + V2
3 双 Token JWT Access 1h + Refresh 7d 旋转
4 Redis 缓存 @Cacheable 学生5min/仪表盘15min
5 AOP 切面日志 @Aspect 零侵入 + IP 记录
6 全局异常处理 @RestControllerAdvice 5 类异常
7 Bean Validation @Valid + @NotBlank
8 MapStruct 映射 编译期 Entity ↔ DTO,零反射
9 后端真分页 Pageable + JpaSpecificationExecutor
10 API 文档 Knife4j / OpenAPI 3 自动生成
11 Docker 多阶段构建 builder(jdk)runner(jre) 减小镜像
12 健康检查 Actuator + HEALTHCHECK
13 CI/CD GitHub Actions: 编译→测试→JaCoCo
14 前后端分离 Nginx 反向代理 + Vite 开发代理
15 JWT 无感刷新 Axios 拦截器 401→自动 refresh
16 方法级鉴权 @PreAuthorize("hasAnyRole(...)")

这个项目适合谁?

如果你… 从哪一代开始
Java 刚学到面向对象 🏘️ 新手村
学完 JDBC / Maven 🏙️ 进阶版
在学 Spring Boot 🚀 宇宙版
准备秋招/春招 ☄️ 爆炸版(简历项目)
想学 Docker/CI/CD ☄️ 爆炸版

GitHub 仓库

👉 github.com/lechan775/student_management

支持中/英/日三语 README,点进去就有完整文档。

觉得有用的话,Star ⭐ 是对开源最大的鼓励。


标签

#Java #SpringBoot #Vue3 #全栈 #开源项目 #学生管理系统 #Docker #后端开发 #计算机专业 #秋招项目

更多推荐