SpringBoot整合Mybatis启动报错Invalid Statement xxx not found

一. 问题背景

springboot版本2.3

情况:照着b站的雷神的视频写代码,全部无误,那些什么namespace、resultType也无误,都能对应得上,@MapperScan也加了,yml中也配置了mapper-locations: classpath:mybatis/mapper/*.xml。但是启动后,输入localhost:8080/emp/1就会报Invalid Statement xxx not found

真的很崩溃,全都无误,为什么会报错。

我的情况可能很少人遇到,以下的方案不能解决大部分人的问题,希望能帮助到遇到类似情况的人吧。

二. 解决方案

我的工程中有application.yml以及application.properties配置文件,所有的配置都是在application.yml文件中配置的。经历了无数次失败后,不经意打开application.properties,发现里面也配置了mapper-locations

解决方法:将application.propertie里面有关mybatis配置全部注释掉或者删掉就解决问题了。

三. 报错的原因

因为properties文件的优先级比yaml高,如果两者同时配置,那么properties的配置会覆盖yaml配置。

我从没有在properties中配置过,不知道是哪里出了问题。如下:
SpringBoot整合Mybatis启动报错Invalid Statement xxx not found
因为有alibaba的配置项,猜测是我使用的druid依赖是druid-spring-boot-starter,导致引入的时候自动配置了。仅仅是猜测而已