返回顶部
首页 > 资讯 > 后端开发 > Python >模仿mybatis-plus实现rpc调用
  • 789
分享到

模仿mybatis-plus实现rpc调用

模仿mybatis-plusrpc调用mybatis-plusrpc 2023-02-14 12:02:24 789人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录正文组件的整合优化点场景:背景:步骤:正文 首先我的目标就是 为了把rpc调用进行封装,让业务人员开发的时候 快速使用 组件的整合 pom.xml 整合 <depende

正文

首先我的目标就是 为了把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 类中 添加自己的逻辑

优化点

  • 可以把所有 接口的动态代理都使用这个组件
  • 支持插件化扩展MetadataMapperMethod 的逻辑

场景:

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

额外考虑:

  •  mybatis 和 mybatis-plus 共存的情况,会出现 多次动态代理的情况,怎么保证正确性
  •  发现 拿Object 接动态代理之后的对象可以,用接口接 就不行
  •  对必要的东西 进行cache

背景:

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

比如现在有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调用的资料请关注编程网其它相关文章!

--结束END--

本文标题: 模仿mybatis-plus实现rpc调用

本文链接: https://lsjlt.com/news/196002.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 模仿mybatis-plus实现rpc调用
    目录正文组件的整合优化点场景:背景:步骤:正文 首先我的目标就是 为了把rpc调用进行封装,让业务人员开发的时候 快速使用 组件的整合 pom.xml 整合 <depende...
    99+
    2023-02-14
    模仿mybatis-plus rpc调用 mybatis-plus rpc
  • dubbo怎么实现rpc调用
    Dubbo是一个基于Java的高性能RPC框架,可以实现远程服务的调用。以下是使用Dubbo实现RPC调用的步骤:1. 定义服务接口...
    99+
    2023-10-23
    dubbo
  • springboot+HttpInvoke如何实现RPC调用
    小编给大家分享一下springboot+HttpInvoke如何实现RPC调用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!开始用springboot2+hession4实现RPC服务时,发现第一个服务可以调用成功,但第二...
    99+
    2023-06-29
  • Golang实现简易的rpc调用
    目录开始实现两点之间的通讯(transport)实现反射调用已注册的方法总结(自我pua)RPC(Remote Procedure Call Protocol)远程过程调用协议。 一...
    99+
    2023-03-06
    Golang实现rpc调用 Golang rpc调用 Golang rpc
  • MyBatis-Plus(实用篇)
    文章目录 一、基础组件(接口和实现类)1、BaseMapper\2、IService\3、链式查询与修改4、调用Service层操作数据 二、常用注解1、@TableName2、@TableId3、@TbaleField4、@T...
    99+
    2023-08-17
    mybatis java mysql
  • mybatis-plus与mybatis共存的实现
    目录一、在pom文件中添加mybatis-plus-boot-starter。二、配置yml文件接手了一个开发任务,在一个springboot+mybatis+nacos的框架上增加...
    99+
    2024-04-02
  • easycode配置成mybatis-plus模板的实现方法
    本文主要介绍了easycode配置成mybatis-plus模板的实现方法,分享给大家,具体如下: entity.java ##导入宏定义 $!define ##保存文件(宏定义...
    99+
    2024-04-02
  • springboot+HttpInvoke 实现RPC调用的方法
    开始用springboot2+hession4实现RPC服务时,发现第一个服务可以调用成功,但第二个就一直报'<'isanunknowncode。第一个服务还是...
    99+
    2024-04-02
  • MyBatis-Plus使用ActiveRecord(AR)实现CRUD
    目录1.什么是ActiveRecord(AR)?2.通过AR实现CRUD1.1insert1.2update1.3delete1.4select1.什么是ActiveRecord(A...
    99+
    2024-04-02
  • mybatis plus实现条件查询
    目录一、wapper介绍二、常用的条件方法1. gt 表示 >2. le 表示 <=3. lt&nb...
    99+
    2024-04-02
  • MyBatis-Plus实现多表联查
    MyBatis-Plus多表联查写法 前言一、引依赖二、使用方法三、(实战)多表查询参数说明 四、(实战)多表分页查询 前言 收获大佬封装的一个jar包,可以支持MyBatis-...
    99+
    2023-09-03
    mybatis java sql
  • MyBatis-Plus中SimpleQuery查询实现
    对list查询后的结果用Stream流进行了一些封装,使其可以返回一些指定结果,简洁了api的调用,这种调用方式不用注入bean、不用注入bean、不用注入bean,通过实体类cla...
    99+
    2022-11-13
    MyBatis-Plus SimpleQuery查询 MyBatis-Plus SimpleQuery
  • Mybatis-Plus实现分页查询
    Mybatis-Plus实现分页查询 文章目录 Mybatis-Plus实现分页查询1.1技术概述1.2技术详述1.2.1配置分页插件1.2.2自定义分页1、如果你的mapper没有继承BaseMapper2、如果你的mapper继...
    99+
    2023-08-17
    mybatis java spring boot
  • Golang如何实现简易的rpc调用
    这篇文章主要介绍“Golang如何实现简易的rpc调用”,在日常操作中,相信很多人在Golang如何实现简易的rpc调用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang如何实现简易的rpc调用”的疑...
    99+
    2023-07-05
  • mybatis-plus使用generator实现逆向工程
    目录1.背景2.引入jar包3.自动生成代码4.修改*Mapper.xml文件的生成位置4.1 默认*Mapper.xml文件生成位置4.2 修改*Mapper.xml文件生成位置1...
    99+
    2024-04-02
  • mybatis-plus指定字段模糊查询的实现方法
    mybatis-plus版本:3.3.0 oracle版本:11g 很常见的一个需求场景:某张表在前端显示时,查询条件中,往往name字段需要模糊查询,否则默认mybatis-plu...
    99+
    2024-04-02
  • Mybatis 实现动态组装查询条件,仿SQL模式
    目的: 以前比较习惯使用Hibernate,后来觉得mybatis不能按我想要的自动组装为SQL查询条件,所以提供该工具类; 效果图: 如图所示,根据条件自动组装查询条件,下面来...
    99+
    2024-04-02
  • 基于python实现rpc远程过程调用
    目录基于python实现RPC的demo前言一、主要内容二、实现步骤1. 进程间的通信2. 异步回调实现思路总结基于python实现RPC的demo 这是一个远程过程调用(RPC)的...
    99+
    2024-04-02
  • golang实现简单rpc调用过程解析
    目录基本概念RPC通信过程RPC 具体实现server端客户端基本概念 RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务...
    99+
    2024-04-02
  • 如何在PHP中实现RPC远程调用?
    随着互联网的快速发展和云计算技术的广泛应用,分布式系统和微服务架构变得越来越普遍。在这样的背景下,远程过程调用(RPC)成为了一种常见的技术手段。RPC能够使得不同的服务在网络上实现远程调用,从而实现不同服务之间的互联操作,提高代码的复用性...
    99+
    2023-05-14
    PHP rpc 远程调用
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作