mybatis.mapper-locations=classpath*:mapper/**/*.xml
mybatis.type-aliases-package=com.demo.entity
@MapperScan("com.demo.mapper")

接口调用时抛绑定异常,提示找不到对应语句,XML 文件里明明写了同名的 id。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,Mapper 接口与 XML 的命名空间不一致,或 XML 没有被扫描进类路径。

这次卡住的地方就在「MyBatis 绑定失败」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

别只看报错的最后一行,往上看几行,真正的起因通常在上面。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

处理上按这个顺序:核对 XML 的 namespace 与接口全限定名;确认扫描路径覆盖到包;打包后检查 XML 是否在产物里。

改完只确认一件事:调用该接口能正常返回数据,启动日志中 Mapper 数量符合预期。

作者 9823189