这两天把一个基于SpringMVC的旧项目迁移到SpringBoot,遇到了一系列开发中常见的问题,总算逐一解决了。下面把几个关键踩坑记录整理出来,方便日后回顾。

首先说Tomcat的兼容性问题。自从改用SpringBoot后,Tomcat总是不稳定,频繁抛出各种异常。后来索性替换为Webflux,问题迎刃而解。依赖非常简单,只需添加这一个:
org.springframework.boot
spring-boot-starter-webflux
接下来是MyBatis的配置问题,遇到了典型的 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)。如果你的Mapper XML文件和源码放在同一目录下,必须确保构建时把XML文件也打包进去,否则尝试再多修复手段都无效。建议先去target目录下检查,确认XML是否已正确打包。解决办法是在pom.xml中显式声明资源路径:
src/main/ja va
**/*.class
**/*.xml
src/main/resources
**/**
然后通过SpringBoot的MyBatis启动器进行整合:
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
这样就能在application.properties中配置Mapper XML的扫描路径了,例如:
mybatis.mapper-locations=classpath*:org/doss/**/*.xml
解决以上三个核心问题后,项目基本就能顺利启动运行了。特此记录,下次改造时能节省不少排查时间。
