项目已经启动,却出现接口报错、连接超时、SQL 异常或线程卡住时,从这里按现象查找本站的排查文章。每个入口对应一篇已经发布的具体问题说明,命令与配置的适用环境写在各篇正文中。

最近整理:2026-10-29。先保存错误时间、完整异常链、请求路径与运行环境,再逐步缩小范围;涉及修改的操作,按文章前提在合适环境复测。

按现象找到入口

现在看到的现象先看这篇
路径看起来没错,接口却是 404Spring Boot 接口 404
地址正确,HTTP 方法不被允许接口返回 405
JSON、表单或文件上传格式不匹配接口返回 415
经过 Nginx 后出现 502 / 504区分代理与 Spring Boot 故障
数据库连接长时间等不到数据库连接池耗尽
Java 进程还在,但请求一直卡住Java 线程死锁定位
健康检查 DOWN,实例被摘流或重启健康检查 DOWN

接口请求、参数与上传

先确认响应由哪个环节产生,再比较请求方法、路径、媒体类型和请求体。不同状态码只是入口线索,项目自定义异常处理与网关行为也要一并核对。

刚开始写接口,可先读 Spring Boot 接收 JSON 参数,再按上面的具体错误继续排查。

数据库、事务与 MyBatis

先分清问题发生在参数绑定、连接获取、SQL 执行还是结果映射,避免把所有数据库异常都当成“SQL 写错”。

文章重点线索
数据库连接池耗尽连接等待、占用时间与连接池状态
MySQL 死锁事务持锁与等待顺序、整体事务重试
Transactional 不回滚调用路径、异常类型与事务边界
MyBatis Invalid bound statementXML 加载、namespace、方法绑定
查询有数据,实体字段却为 null列名、属性名与结果映射
foreach 查询报错参数名称、空集合与实际 SQL

数据库死锁和 Java 线程死锁涉及不同资源,要分别取得数据库锁信息与 JVM 线程信息;不能用一份线程转储代替两边的证据。

Redis、HTTP 与 HTTPS 调用

复测使用原来的运行环境、域名和调用端配置。另一个客户端请求成功,可以帮助对照,但不能直接证明原调用链已经恢复。

运行、日志与部署入口

启动阶段的问题

如果项目还没启动成功,先回到这些入口:

需要完整项目开发顺序时,继续阅读 Spring Boot 教程。本专题随已发布文章补充入口,阅读时先核对各篇的更新时间和环境说明。

更新记录

  • 2026-10-29:建立专题,按接口、数据访问、外部调用和运行故障整理已发布文章;补齐与开发环境、Spring Boot 教程的交叉导航。