最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

正文

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

組件的整合

pom.xml 整合

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

假設你的業(yè)務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)化點

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

場景:

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

額外考慮:

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

背景:

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

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

步驟:

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

測試通過

2 springboot項目 添加mybatis 進行重新測試

測試通過

3 springboot項目 去掉mybatis 添加 mybatis-plus 進行重新測試

因為 mybatis 和mybatis-plus 有沖突,一般項目都是用其中一個

測試通過

上面這三步是因為公司項目中不敢保證都是用 mybatis 或者 mybatis-plus,有可能根據(jù)項目不同,選擇不同的組件,所以我們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 都掃描到了 這個接口,多次動態(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實現(xiàn)rpc調(diào)用的詳細內(nèi)容,更多關于模仿mybatis-plus rpc調(diào)用的資料請關注腳本之家其它相關文章!

相關文章

  • Java 基礎語法中的邏輯控制

    Java 基礎語法中的邏輯控制

    這篇文章主要介紹了Java 基礎語法中的邏輯控制的相關資料,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • java中的各種修飾符作用及范圍

    java中的各種修飾符作用及范圍

    這篇文章主要介紹了java中的各種修飾符作用及范圍,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 詳細說明關于Java的數(shù)據(jù)庫連接(JDBC)

    詳細說明關于Java的數(shù)據(jù)庫連接(JDBC)

    這篇文章主要介紹了詳細說明關于Java的數(shù)據(jù)庫連接JDBC,JDBC是用Java語言向數(shù)據(jù)庫發(fā)送SQL語句,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • Resty極簡restful框架快速接入Spring

    Resty極簡restful框架快速接入Spring

    這篇文章主要為大家介紹了Resty極簡的restful框架快速接入Spring詳細說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Java jdk安裝及javac命令無效解決方案

    Java jdk安裝及javac命令無效解決方案

    這篇文章主要介紹了Java jdk安裝及javac命令無效解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • 詳解SpringBoot讀取配置文件的N種方法

    詳解SpringBoot讀取配置文件的N種方法

    這篇文章主要介紹了詳解SpringBoot讀取配置文件的N種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • IDEA 2021.1 操作SVN 最新超詳細教程(圖文)

    IDEA 2021.1 操作SVN 最新超詳細教程(圖文)

    本教程將通過idea從svn服務器中的任意一個分支檢出代碼(本文采用branches),然后再idea中創(chuàng)建新的分支、提交代碼、拉取代碼、合并分支等操作進行一一記錄,暫不包含代碼合并,對idea2021.1操作svn相關知識感興趣的朋友一起學習下吧
    2021-05-05
  • Spring Boot分段處理List集合多線程批量插入數(shù)據(jù)的解決方案

    Spring Boot分段處理List集合多線程批量插入數(shù)據(jù)的解決方案

    大數(shù)據(jù)量的List集合,需要把List集合中的數(shù)據(jù)批量插入數(shù)據(jù)庫中,本文給大家介紹Spring Boot分段處理List集合多線程批量插入數(shù)據(jù)的解決方案,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 詳解Mybatis中常用的約束文件

    詳解Mybatis中常用的約束文件

    這篇文章主要介紹了詳解Mybatis中常用的約束文件,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • SpringBoot中發(fā)送QQ郵件功能的實現(xiàn)代碼

    SpringBoot中發(fā)送QQ郵件功能的實現(xiàn)代碼

    這篇文章主要介紹了SpringBoot中發(fā)送QQ郵件功能的實現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02

最新評論

邓州市| 汽车| 贵定县| 松江区| 海安县| 湄潭县| 柳州市| 海伦市| 五指山市| 北碚区| 霍山县| 南木林县| 咸阳市| 汉源县| 信丰县| 镶黄旗| 深泽县| 运城市| 会泽县| 叙永县| 屯昌县| 钟祥市| 嘉善县| 怀来县| 宜城市| 加查县| 永修县| 涞水县| 鸡西市| 阿拉善左旗| 松桃| 山丹县| 长治县| 焦作市| 汉沽区| 揭西县| 襄垣县| 天镇县| 文水县| 璧山县| 乌兰县|