文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

模仿mybatis-plus实现rpc调用

2023-02-14 12:02

关注

正文

首先我的目标就是 为了把rpc调用进行封装,让业务人员开发的时候 快速使用

组件的整合

pom.xml 整合

<dependency>
    <groupId>com.yuye</groupId>
    <artifactId>yuye-metadata-spring-boot-starter</artifactId>
</dependency>

假设你的业务package 名为 com.yuye.biz.xxx

新建一个package 比如com.yuye.biz.xxx.metadata.mapper 新建一个TestMetadata.java 接口

@MetadataModel("model01")
public interface TestMetadataMapper {
    String test();
}

Application 启动类上加

@MetadataModelScan(basePackage = {"com.example.metadata.mapper"})

你需要在MetadataMapperMethod 类中 添加自己的逻辑

优化点

场景:

1 我需要 在有mybatis的 同时,我要模仿 BaseMapper 接口这种动态代理 底层进行rpc调用

额外考虑:

背景:

让以后其他接口 可以自由的实现自定义动态代理逻辑,

比如现在有mapper 代理 和 metadata代理,之后再来一个 xxx功能,可以快速整合

步骤:

1 组件放到 一个springboot项目(无mybatis 和 mybatis-plus)

测试通过

2 springboot项目 添加mybatis 进行重新测试

测试通过

3 springboot项目 去掉mybatis 添加 mybatis-plus 进行重新测试

因为 mybatis 和mybatis-plus 有冲突,一般项目都是用其中一个

测试通过

上面这三步是因为公司项目中不敢保证都是用 mybatis 或者 mybatis-plus,有可能根据项目不同,选择不同的组件,所以我们2个都要兼容

测试@MapperScan 和 @MetadataModelScan 是否有冲突

总共分几种情况:

1 各自管各自的

@MetadataModelScan(basePackage = {"com.example.metadata.mapper"})
@MapperScan({"com.example.dao"})

2 @MapperScan 范围包含@MEtada

@MetadataModelScan(basePackage = {"com.example.metadata.mapper"})
@MapperScan({"com.example"})

报错

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed

是因为 mapper和 metadata 都扫描到了 这个接口,多次动态代理,而且我们用的是 @


@Autowired

解决办法:

1 把package 分开

2 添加@MapperScan的拦截 过滤掉 @MetadataModel ,让mybatis 不扫描使用

@MetadataModel 的接口

3 @MetadataModelScan 大于 @MapperScan

@MetadataModelScan(basePackage = {"com.example"})
@MapperScan({"com.example.dao"})

测试通过

代码地址 github.com/a25017012/y…

以上就是模仿mybatis-plus实现rpc调用的详细内容,更多关于模仿mybatis-plus rpc调用的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯