SpringBoot集成Mybatis的碰到的路径坑

前言:
在商城的项目中一直使用的是中台服务,包括数据这块使用的也是中台服务,数据中台对外暴露接口,我们黑盒调用传入sql就行,在写另外一个项目时使用的是SpringBoot + Mybatis,然后就碰到了这个问题,看了好久才弄清楚。

问题描述

在创建Mybatis项目时,我们会为每个dao层面的接口去生成一个对应的mapper文件,在创建这个文件时,配置了包扫描,包扫描可以扫到其他所有的mapper文件,唯独扫描不到我新加入的mapper文件。

尝试解决一:

检查后发现有路径和文件名相同的mapper文件,随将自己的包名、文件名都改了。然后还是不行,再编译还是不行。

尝试解决二:

在确定了文件路径,文件名都没有问题后便去检查mapper文件,其实mapper文件出问题,只会在调用时报错,包扫描时时肯定扫描的到的,这里问题排查思路已经出现了问题。不过发现mapper中确实有映射写的不正确。更改后编译还是扫描不到。

尝试解决三:

解压编译后的项目jar包,发现最终编译出来的文件,mapper文件理应和class文件在一个文件夹,但是却被编译到了不同的文件夹,因此确定了是文件夹建立的有问题,因为在建文件夹时使用的这种方式 supplier.dao.mapper。这种方式建出来的文件夹时没有层级结构的,其实文件夹的名字叫就是“supplier.dao.mapper”,而不是一个三层的文件夹(这里说的是文件夹不是package),所以导致了编译后并找不到这个mapper,修改文件夹,然后编译问题解决。

猜你喜欢

转载自blog.csdn.net/m0_46897923/article/details/114896394