Dubbo 集成、mybatis-plus 实战集成:,在分享之前,先参考以下两篇文章:
然后分享不一样的地方: 关键在于 提供Dubbo服务的也接口
1、不一样的地方主要在业务层,service 业务层不再继承 extends ServiceImpl<T,M>
为什么要这样呢,因为如继承了启动时会报错 :
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.admin.db.mapper.TaskMapper.selectById
原因:当在模块中通过dubbo的rpc来调用其他服务的方法时,不能使用mybatisplus的条件构造器wrapper来进行方法调用。因为wrapper中包含有泛型 Wrapper<T> ,会导致rpc解析失败,从而导致调用失败
解决方法:service层不用wrapper作为参数,mapper接口层集成即可:
public interface UserMapper extends BaseMapper<TblUser> {
int deleteByPrimaryKey(Long id);
}
然后业务层调用接口时如下进行:前面加上mapper接口类
TblUser tblUser = tblUserMapper.selectById(id);
如果不和Dubbo集成,这样就行:
TblUser tblUser = selectById(id);
其实这两种方式的原理都是一样的,只不过第一种避开了Dubbo的调用过程的陷阱,下篇我们分享mybatis-plus的API使用及源码,敬请期待!

本文介绍了在Dubbo集成Mybatis-Plus时遇到的问题,具体表现为使用条件构造器导致RPC调用失败。解决方案是避免在Service层继承extendsServiceImpl,而是直接在Mapper接口中集成BaseMapper。通过示例展示了如何正确调用Mapper接口的方法,同时指出这种方法与不集成Dubbo时的区别。下篇将分享Mybatis-Plus的API使用和源码解析。
776

被折叠的 条评论
为什么被折叠?



