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


先看四代演进(一张图)

四代演进流程图

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


为什么做这个项目?

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

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

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


四代对比(一张表看懂)

维度🏘️ 新手村🏙️ 进阶版🚀 宇宙版☄️ 爆炸版
界面控制台控制台表格浏览器 SPAVue3 + Vite + TS
存储ArrayListSQLiteH2MySQL 8.0
缓存———Redis 7
ORM—JDBCJPAJPA + Specification
安全明文存储BCrypt 哈希JWT 单 TokenJWT 双 Token 旋转
对象转换———MapStruct (编译期)
分页无前端假分页前端假分页后端真分页
数据库迁移———Flyway
API 文档———Knife4j/Swagger
异常处理printStackTraceRuntimeExceptionRuntimeException全局异常处理器
参数校验手动 if手动 if无@Valid 注解
日志System.outSystem.err手动调用AOP 自动切面 + IP
测试无无无JUnit5 + Mockito
部署javacmvn execmvn spring-boot:runDocker 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 JWTAccess 1h + Refresh 7d 旋转
4Redis 缓存@Cacheable 学生5min/仪表盘15min
5AOP 切面日志@Aspect 零侵入 + IP 记录
6全局异常处理@RestControllerAdvice 5 类异常
7Bean Validation@Valid + @NotBlank
8MapStruct 映射编译期 Entity ↔ DTO,零反射
9后端真分页Pageable + JpaSpecificationExecutor
10API 文档Knife4j / OpenAPI 3 自动生成
11Docker 多阶段构建builder(jdk) → runner(jre) 减小镜像
12健康检查Actuator + HEALTHCHECK
13CI/CDGitHub Actions: 编译→测试→JaCoCo
14前后端分离Nginx 反向代理 + Vite 开发代理
15JWT 无感刷新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 #后端开发 #计算机专业 #秋招项目

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐