Mybatis-plus中BaseMapper和IService功能相似重复,为啥要提供两个接口?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-plus中BaseMapper和IService功能相似重复,为啥要提供两个接口?相关的知识,希望对你有一定的参考价值。
参考技术A 综合来看,比较合理的解释是:1、从分层角度来解释,BaseMapper是DAO层的CRUD封装,而IService是业务业务逻辑层的CRUD封装,所以多了批量增、删、改的操作封装,这也比较符合官方指南中的阐述;
2、IService是对BaseMapper的扩展,从BaseMapper、IService、ServiceImpl三者的类关系以及源码可以看出;
此外,个人认为应该还有一个原因,就是IService和BaseMapper提供的是两种实现方式:
如果继承BaseMapper,则不需要去实现其内部方法,依靠mybatis的动态代理即可实现CRUD操作;
而如果自定义IBaseService去继承IService,则需要去实现IService中的方法;
以上是关于Mybatis-plus中BaseMapper和IService功能相似重复,为啥要提供两个接口?的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis-Plus01_概述初始化工程BaseMapper和Service中的CRUD常用注解
MyBatis-Plus01_概述初始化工程BaseMapper和Service中的CRUD常用注解
mybatis-plus 自定义basemapper支持批量增删改操作
mybatis-plus 自定义basemapper支持批量增删改操作