项目红一片时,最亏的做法是改业务代码。本科毕设启动失败八成不是逻辑。目录约定见 Spring Boot 页;交材料前的干净电脑复现见 源码交付。本页只解决:日志怎么读、四类怎么对、常见原文怎么处理。
合格线:能指出第一个 Error 属于哪一类;版本写在部署说明第一行;库能连上;浏览器能打开登录页。不要截整屏红字丢给别人却说「报错了」。
一、只看第一个 Error
- 把控制台滚到最早出现
ERROR/Caused by的位置 - 复制那 5–15 行,不要复制 200 行 WARN
- 对下表四类,一类对不上再看下一类
- 改一处、重启一次,不要同时改 JDK、端口、yml
截图给别人时:Error 全文 + java -version / node -v + 你改过的配置文件名。
二、四类对照表
| 类 | 日志里常见原文 | 先做什么 |
|---|---|---|
| 版本 | Unsupported class file、invalid target、release 17 | IDEA Project SDK 改成项目要求的 JDK;不要 8 和 17 混用 |
| 导库 | Unknown database、Access denied、Communications link failure | 启动 MySQL;建同名库;导入 SQL;yml 密码改成你的 |
| 依赖 | Could not resolve dependencies、npm ERR! 404 | Maven 换阿里云镜像;npm 换 npmmirror;删缓存再拉 |
| 路径端口 | Port 8080 was already in use、ENOENT、跨域 failed | 改 server.port 或杀掉占用;前端代理地址对后端 |
Spring Boot 默认顺序见 技术栈页。前端最少页见 Vue 页。
三、后端 6 条高频
| 现象 | 处理 |
|---|---|
| Failed to configure a DataSource | MySQL 服务开着;库已建;url 带 useSSL=false&serverTimezone=Asia/Shanghai |
| Table 'xxx' doesn't exist | 导错库或没导 schema。Navicat 看当前库有没有那张表 |
| 密码对但连不上 | MySQL 8 缓存插件;用 Navicat 能连再填进 yml |
| 8080 already in use | 改端口或结束旧进程。前端 vue.config 代理一起改 |
| Mapper 找不到 XML | application.yml 配 mapper-locations;XML 放 resources |
| 主类找不到 | 用带 @SpringBootApplication 的那个类运行,不要跑测试类 |
四、前端 / 小程序 5 条
npm i失败:npm config set registry https://registry.npmmirror.com,删node_modules再装- 页面空白:F12 看接口是 404 还是跨域;代理 target 必须是后端真实端口
- 登录 401 循环:先确认后端能
GET /或健康接口,再查 token 字段名 - 小程序「合法域名」:开发者工具勾选不校验;答辩用体验版
- 图片裂开:别写本机绝对路径,用
/static或接口返回的相对路径
五、30 分钟自测顺序
- 命令行打印 JDK / Node / MySQL 版本,抄进部署说明
- Navicat 连上并看到演示表
- 只启动后端,浏览器打开接口文档或登录接口
- 再启动前端,登录两个角色
- 走一条主流程。主流程定义见 中期清单
这一步过了,再谈测试用例 8 条 和答辩演示 3 分钟。环境都没起来,写用例没有意义。
六、不要做的
| 做法 | 为什么亏 |
|---|---|
| 重装系统 / 换电脑当第一步 | 多数是配置,不是硬盘 |
| 同时升级 JDK、Boot、Vue | 问题叠加,无法定位 |
| 把报错贴进论文当「测试」 | 测试是预期结果,不是启动失败 |
| 为排错引入 Nacos / Docker 全家桶 | 本科默认单体,见 微服务怎么回 |
常见问题
老师电脑能跑、我的不能?
版本不一致。把对方的 java -version 和 mvn -v 抄下来对齐。再核对 SQL 是否同一份。
必须用 IDEA 吗?
不必须,但课上统一 IDEA 成本最低。Eclipse 要自己配 Maven 和 JDK。
Python / Django 怎么套这张表?
四类同样成立:Python 版本、没 migrate、pip 源、端口。把 Maven 换成 pip、yml 换成 settings.py。
排了一下午还红?
停手。把第一个 Error + 版本号 + yml 脱敏后发过来。连续改 20 处会把能跑的配置改坏。
