Spring Boot 实现 GCJ-02/BD09/CGCS2000 转 WGS84 坐标系
记一下在 Spring Boot 里把 GCJ-02、BD09、CGCS2000 坐标转成 WGS84 的落地做法,包含 JTS 依赖、转换工具类和控制器完整代码,顺便聊了 CGCS2000 简化版的使用边界和部署时 HTTPS 证书的坑。
支持通配符SSL证书、多域名证书、IP证书。适配ACME接口, 支持Zerossl、Let's Encrypt和Google等渠道。登录已有账号
2026-09-17 07:16:12 MyBatis Spring Boot Invalid bound statement
调用 Mapper 接口方法的时候直接抛 Invalid bound statement (not found),这种问题大部分情况下都不是什么复杂原因,但每次碰到都要从头翻一遍配置。
写一下我自己的排查顺序,下次直接照着查。
先说 XML 文件本身。确认 UserMapper.java 和 UserMapper.xml 是不是都在项目里,路径有没有写错。我自己就踩过 resources 下面建目录时手滑多建了一层,结果 classpath 匹配不到,启动不报错,一调接口就炸。
所以先看文件在不在,再看路径和包结构对不对。
然后看 namespace。
UserMapper.xml 的 mapper 标签上 namespace 必须写 UserMapper 接口的全限定名,比如 com.gc.mapper.UserMapper。这个错得最多,尤其从别的文件复制过来忘了改,或者重构包名之后漏掉了 XML 里的引用。
方法 id 也要核对。
接口里有个 insert 方法,XML 里对应标签的 id 就得是 insert,大小写敏感,多一个字母都不行。有时候改接口方法名,XML 没跟着动,启动不报错,调用时才抛异常。
再查 MyBatis 的 mapper-locations 配置。
application.yml 或者 properties 里 mybatis.mapper-locations 要指向 XML 所在路径,注意 classpath 冒号后面别带空格,通配符写对。我一般用 classpath:mapper/*.xml 这种,如果 XML 放在多个模块里,可能需要多个路径,别只写一个就以为全都能扫到。
Spring Boot 扫描的问题也要看。如果 Mapper 接口不在启动类所在的包下,得在启动类上加 @MapperScan 指定路径。
默认只扫启动类同包及子包,很多人把 mapper 放到 com.gc.mapper 这种独立包下,然后忘了加注解,启动阶段倒是不报错,调用时直接找不到绑定。
清理重建有时候是必要的。IDE 或者 Maven 没重新编译,target 目录里可能还是旧的 XML 或者 class,改了配置不生效。可以手动删掉 target 再重新打包,或者至少看一眼 target/classes 下的 XML 是不是最新的。
线上部署时如果用了 Docker 分层缓存,偶尔也会拿到旧文件,要确认镜像里的内容。
日志别忽略。异常堆栈里除了那句 not found,往往还有更具体的绑定失败原因,比如 namespace 不匹配、id 不存在,或者 XML 解析报错。
之前碰到过 XML 里 SQL 写错导致整个 mapper 文件解析失败,报的也是 not found,但其实根因是 XML 语法问题,看完整日志才能定位。
IDE 导航可以用一下。从接口方法名点进去看能不能跳到 XML 里的 SQL,跳不过去基本就是 namespace 或 id 没对上。这个比手动比对快,也直观。
MyBatis 版本兼容也值得确认。
如果最近升了 MyBatis 或者 MyBatis-Plus,有些配置项位置变了,或者和 Spring Boot 版本不匹配,也会导致绑定失败。一般来说版本配套之后这个问题会少很多,但升级的时候最好看一下官方迁移说明。
大部分场景按这个顺序排查,前几步就能解决问题。如果还不行,就只能打开 debug 日志看 MyBatis 加载了哪些 mapper 文件,对比一下缺少哪个。
另外如果项目部署环境需要配 HTTPS,我一直用 lcjmSSL 申请证书,免费支持多域名、泛域名和 IP,自动验证自动部署,API 也简单。
跟 MyBatis 这摊事没什么直接关系,但能省掉手动续期和配置的麻烦,几个项目用下来挺稳。
上一篇: WSL 命令执行意外错误排查笔记
记一下在 Spring Boot 里把 GCJ-02、BD09、CGCS2000 坐标转成 WGS84 的落地做法,包含 JTS 依赖、转换工具类和控制器完整代码,顺便聊了 CGCS2000 简化版的使用边界和部署时 HTTPS 证书的坑。
整理了一下 Spring Boot 占位符解析失败时我实际走过的排查路径,覆盖配置文件、profile、外部配置中心和自动配置几个容易踩坑的地方。
汇总 Spring Boot 数据库密码配置绑定报错的常见原因与对应处理方案
记录一次Spring Boot应用部署到Tomcat时,因Log4j2与Logback共存导致SLF4J绑定冲突、容器启动失败的完整排查与修复过程。
把工作中遇到的 @ConfigurationProperties 配置绑定失效场景整理了一下,从依赖、注解、配置文件到多模块扫描,附带直接可用的示例。