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



