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服务,但是到了多个,所以它不知道选哪个

 

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

Field baseMapper in com.xxx required a single bean,but 100 were found --------Mybatis-Plus_第1张图片

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

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

Field baseMapper in com.xxx required a single bean,but 100 were found --------Mybatis-Plus_第2张图片

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

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

有两种情况:

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

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

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

 

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

感谢大家的观看,谢谢。

你可能感兴趣的:(mybatis,java后台开发,工具类)