在子模块写了mapper的xml文件,但是项目找不到

平常大部分时候我都是用mbp的lamdba,比较简便,不用写繁琐的mapper的xml文件去数据库查数据,但有时候lamdba满足不了复杂的查询,且复杂的写了可读性也很差,不易维护,所以有时候还是需要自己写xml文件。

但是我在请求方法的时候,提示我找不到mapper的XX方法。后来搜索到说是因为没有配置mbp的locations。于是配置了mybatis-plus.mapper-locations,但还是找不到子模块的mapper.xml文件

子模块的xml文件我放在resource下多层级的mapper包下,

是以我properties配置文件中的配置如下

mybatis-plus.mapper-locations = classpath*:/cn/com/ilives/sms/cmcc/mapper/*Mapper.xml

注意:classpath后需要加*才能访问到子模块的配置文件

但我此时依然访问不到,包com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration的sqlSessionFactory方法中,加载locations的还是为空

查了很久都没查到原因,后来觉得是路径填错了,但是路径我填的是对的,所以我把配置路径改了一下,不过滤,访问所有的xml文件,看下系统编译的路径是什么样的

mybatis-plus.mapper-locations = classpath*:/**/*.xml

然后就能看见locations加载出来了

有很多其他乱七八糟的文件,因为路径没有对其进行过滤,黄框是我后来发现原因了改的正常的路径后可以访问到的,红框是我之前访问不到的原因,不难发现之前我配置的访问不到的原因确实是包路径错误,此时我想起来我当时建包的时候多层级的包偷懒了是直接建一个包然后命名为*.*.*.*的包,所以/cn/com/ilives/sms/cmcc/mapper/*Mapper.xml访问不到我的xml文件,得/cn.com.ilives.sms.cmcc.mapper/*Mapper.xml才可以访问到,重新建了mapper的包后,将localtions配置改回去

mybatis-plus.mapper-locations = classpath*:/cn/com/ilives/sms/cmcc/mapper/*Mapper.xml

此时已经可以正常加载到了,自己编写的xml的方法也可以访问到了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值