欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

模仿mybatis-plus實(shí)現(xiàn)rpc調(diào)用

 更新時間:2023年02月14日 11:16:23   作者:雨夜之寂  
這篇文章主要為大家介紹了模仿mybatis-plus實(shí)現(xiàn)rpc調(diào)用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

首先我的目標(biāo)就是 為了把rpc調(diào)用進(jìn)行封裝,讓業(yè)務(wù)人員開發(fā)的時候 快速使用

組件的整合

pom.xml 整合

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

假設(shè)你的業(yè)務(wù)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 類中 添加自己的邏輯

優(yōu)化點(diǎn)

  • 可以把所有 接口的動態(tài)代理都使用這個組件
  • 支持插件化擴(kuò)展MetadataMapperMethod 的邏輯

場景:

1 我需要 在有mybatis的 同時,我要模仿 BaseMapper 接口這種動態(tài)代理 底層進(jìn)行rpc調(diào)用

額外考慮:

  •  mybatis 和 mybatis-plus 共存的情況,會出現(xiàn) 多次動態(tài)代理的情況,怎么保證正確性
  •  發(fā)現(xiàn) 拿Object 接動態(tài)代理之后的對象可以,用接口接 就不行
  •  對必要的東西 進(jìn)行cache

背景:

讓以后其他接口 可以自由的實(shí)現(xiàn)自定義動態(tài)代理邏輯,

比如現(xiàn)在有mapper 代理 和 metadata代理,之后再來一個 xxx功能,可以快速整合

步驟:

1 組件放到 一個springboot項(xiàng)目(無mybatis 和 mybatis-plus)

測試通過

2 springboot項(xiàng)目 添加mybatis 進(jìn)行重新測試

測試通過

3 springboot項(xiàng)目 去掉mybatis 添加 mybatis-plus 進(jìn)行重新測試

因?yàn)?mybatis 和mybatis-plus 有沖突,一般項(xiàng)目都是用其中一個

測試通過

上面這三步是因?yàn)楣卷?xiàng)目中不敢保證都是用 mybatis 或者 mybatis-plus,有可能根據(jù)項(xiàng)目不同,選擇不同的組件,所以我們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

是因?yàn)?mapper和 metadata 都掃描到了 這個接口,多次動態(tài)代理,而且我們用的是 @

@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實(shí)現(xiàn)rpc調(diào)用的詳細(xì)內(nèi)容,更多關(guān)于模仿mybatis-plus rpc調(diào)用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于Springboot一個注解搞定數(shù)據(jù)字典的實(shí)踐方案

    基于Springboot一個注解搞定數(shù)據(jù)字典的實(shí)踐方案

    這篇文章主要介紹了基于Springboot一個注解搞定數(shù)據(jù)字典問題,大致的方向是自定義注解,在序列化的時候進(jìn)行數(shù)據(jù)處理,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Spring整合Junit詳解

    Spring整合Junit詳解

    Spring 是目前主流的 Java Web 開發(fā)框架,是 Java 世界最為成功的框架。該框架是一個輕量級的開源框架,具有很高的凝聚力和吸引力,本篇文章帶你了解如何配置數(shù)據(jù)源、注解開發(fā)以及整合Junit
    2022-07-07
  • java基于Des對稱加密算法實(shí)現(xiàn)的加密與解密功能詳解

    java基于Des對稱加密算法實(shí)現(xiàn)的加密與解密功能詳解

    這篇文章主要介紹了java基于Des對稱加密算法實(shí)現(xiàn)的加密與解密功能,結(jié)合實(shí)例形式詳細(xì)分析了Des加密算法的功能、原理、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-01-01
  • Java的Cglib動態(tài)代理實(shí)現(xiàn)方式詳解

    Java的Cglib動態(tài)代理實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了Java的Cglib動態(tài)代理實(shí)現(xiàn)方式詳解,CGLIB是強(qiáng)大的、高性能的代碼生成庫,被廣泛應(yīng)用于AOP框架,它底層使用ASM來操作字節(jié)碼生成新的類,為對象引入間接級別,以控制對象的訪問,需要的朋友可以參考下
    2023-11-11
  • 高并發(fā)系統(tǒng)的限流詳解及實(shí)現(xiàn)

    高并發(fā)系統(tǒng)的限流詳解及實(shí)現(xiàn)

    這篇文章主要介紹了高并發(fā)系統(tǒng)的限流詳解及實(shí)現(xiàn),內(nèi)容詳細(xì),小編覺得很不錯,這里分享給大家,供需要的朋友參考。隨小編一起看看吧。
    2017-11-11
  • java使用xpath解析xml示例分享

    java使用xpath解析xml示例分享

    XPath基于XML的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點(diǎn)的能力,下面是一小示例,需要的朋友可以參考下
    2014-03-03
  • Maven+SSM框架實(shí)現(xiàn)簡單的增刪改查

    Maven+SSM框架實(shí)現(xiàn)簡單的增刪改查

    這篇文章主要介紹了Maven+SSM框架實(shí)現(xiàn)簡單的增刪改查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 解決idea使用過程中讓你覺得不爽的一些問題(小結(jié))

    解決idea使用過程中讓你覺得不爽的一些問題(小結(jié))

    這篇文章主要介紹了解決idea使用過程中讓你覺得不爽的一些問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java實(shí)現(xiàn)播放背景音樂

    java實(shí)現(xiàn)播放背景音樂

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)播放背景音樂,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺頁面框架

    SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺頁面框架

    SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺頁面框架,討論兩種搭建方式:基于frameset和基于easyUI,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評論