SpringBoot 整合Mybatis进行单元测试dao和xml路径不一致问题

SpringBoot 整合Mybatis进行单元测试dao和xml路径不一致问题


如果mybatis的dao层接口和mapper xml路径一致的情况下可以省去很多配置,最近在使用springboot整合mybatis进行单元测试的时候遇到一个小坑.搜了网上很多解决方法,很多说的都不是我遇到的这种情况.

项目结构

SpringBoot 整合Mybatis进行单元测试dao和xml路径不一致问题
可以看到,dao层接口与mapper xml的路径不一致,接下来贴配置文件
application.yml
SpringBoot 整合Mybatis进行单元测试dao和xml路径不一致问题
测试文件目录下的启动类:
SpringBoot 整合Mybatis进行单元测试dao和xml路径不一致问题
测试类:
SpringBoot 整合Mybatis进行单元测试dao和xml路径不一致问题
可以看到配置基本没有问题,但运行单元测试报
SpringBoot 整合Mybatis进行单元测试dao和xml路径不一致问题
找了半天,最后发现application.yml文件中的类路径由classpath:改为**classpath:***就可以运行成功,classpath:只会扫描当前项目中的路径,而classpath:*会扫描当前类路径和依赖的jar包等的类路径,这只是这两个配置的区别,至于为什么mybatis配置成classpath:*就不会报错,我暂时还不清楚,如果有大神看到,欢迎留言解答,我只能猜测mapper xml文件没有放到测试 类路径下,而是放在项目类路径下,测试类路径扫描不到项目类路径下的文件