Java 接口排错助手
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_79fc5f91/java-api-debug。
技能介绍
问题背景
Java 接口排错常卡在“日志很长但责任层不清”:一个 500 可能是路由、参数绑定、业务分支、MyBatis 映射或环境配置。直接贴栈帧容易看到 Spring 内部帧,却忽略 OrderController、UserServiceImpl、OrderMapper.xml 等真正需要改动的目标。
工作方式
技能会先归一化输入,确认接口路径、HTTP 方法、异常类型、首个业务栈帧和复现情况。随后按分层判断:
- Controller:检查
@RequestMapping、@RequestBody、校验注解、枚举/日期序列化。 - Service:检查空值、事务边界、远程调用、DTO/VO 转换。
- Mapper:检查 SQL、
@Param、结果映射、动态 SQL 和空集合条件。 - 配置:检查数据源、Redis、Nacos、端口和 profile。
输出会尽量按“症状 -> 可能原因 -> 验证步骤 -> 修复建议”组织,优先给文件级或类级目标,并至少包含一个验证动作。
适用边界
适合常见 Spring Boot、MyBatis/MyBatis-Plus 后端项目的接口故障定位;对并发、网络抖动、第三方服务超时等跨系统问题,需要结合链路日志和监控进一步确认。若输入只有“接口报错”,它需要日志、栈帧或代码片段才能给出可靠结论。
使用场景
- 拿到 Spring Boot 订单接口 500 日志和栈帧后,判断错误出在 Controller、Service 还是 Mapper。
- 面对 MyBatis `BadSqlGrammarException`,整理 SQL 映射、@Param 和结果字段,给出最小验证步骤。
- 根据 405、404 或 `HttpMessageNotReadableException`,排查请求路径、参数绑定和请求体解析问题。
- 把生产事故中“数据写了但未提交”的症状,定位到 Service 事务边界并给出回滚检查项。
适合人员
- 维护 Spring Boot + MyBatis 后端服务,想快速定位接口 500 责任层的 Java 工程师。
- 接手老系统后遇到 `BindingException`,需要查 SQL 映射和参数名映射的工程师。
- 处理线上支付或订单链路异常,要区分业务逻辑失败和数据库映射失败的后端负责人。
- 编写事故复盘,需要把栈帧、代码和修复验证步骤整理成清晰结论的技术支持。