Field baseMapper in com.xxx required a single bean,but 100 were found --------Mybatis-Plus

报错发生时间:项目启动时。

报错英文描述:Field baseMapper in com.xxx required a single bean,but 100 were found

报错信息中文描述:文件baseMapper只需要一个bean服务,但是到了多个,所以它不知道选哪个

   今天开发了新的代码后,然后启动项目,报了这个错。如下:

一开始以为是我把哪里的配置改了,导致spring出错了,后来排查了下,发现我并没有更改任何的配置信息。因此只好从更改的代码中去寻找。

      后来发现我有个接口和接口的实现类继承了mybatis-plus,如下:

然后我又跳进去IBaseService方法里面(ps,IBaseService是自己写的一个方法,它继承mybatis-plus的IService)

我们这里可以看到IService<T>这个接口是支持需要泛型的。因此,当我们有很多个mapper文件去实现IService,相当于IService实现了多次。所以我们在继承IService时,需要标注自己到底需要哪个Mapper来为我们服务,否则就会报上述找不到服务的错。最后更改如下:

有两种情况:

情况一:你的这个类其实不需要操作到数据库,所以这个时候直接把继承IService给去掉就好。

情况二:你的这个类需要操作到数据库,那么就把相应的泛型给加上,这样它就知道你到底要找的是哪个mapper。

如下,假设我有一张User表,然后它对应的bean的名称是User

最后做个总结就是,在开发过程中还是要仔细小心,有可能一点点疏忽就会导致你需要找很久的解决方案,共勉!

感谢大家的观看,谢谢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值