<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          官宣!Mybatis-Plus 官方神器發(fā)布!!!

          共 3855字,需瀏覽 8分鐘

           ·

          2021-11-26 22:03

          大家好,我是 Guide!

          今天推薦一個 MyBatis - Plus 官方發(fā)布的神器:mybatis-mate

          mybatis-mate 為 Mybatis-Plus 企業(yè)級模塊,支持分庫分表,數(shù)據(jù)審計、數(shù)據(jù)敏感詞過濾(AC 算法),字段加密,字典回寫(數(shù)據(jù)綁定),數(shù)據(jù)權(quán)限,表結(jié)構(gòu)自動生成 SQL 維護等,旨在更敏捷優(yōu)雅處理數(shù)據(jù)。

          不過,需要注意的是:這些特性目前購買授權(quán),并不是免費開放使用。

          下面我會簡單介紹一下這些高級特性以及使用方法。

          使用

          Spring Boot 引入自動依賴注解包 :

          <dependency>
          ??<groupId>com.baomidougroupId>
          ??<artifactId>mybatis-mate-starterartifactId>
          ??<version>1.0.8version>
          dependency>

          注解(實體分包使用):

          <dependency>
          ??<groupId>com.baomidougroupId>
          ??<artifactId>mybatis-mate-annotationartifactId>
          ??<version>1.0.8version>
          dependency>

          主要功能介紹

          • 字段脫敏
          • 數(shù)據(jù)敏感詞過濾
          • 字段加密解密
          • 數(shù)據(jù)審計(對賬)
          • 數(shù)據(jù)庫分庫分表、動態(tài)據(jù)源、讀寫分離、數(shù)據(jù)庫健康檢查自動切換。
          • 字典綁定
          • 表結(jié)構(gòu)動態(tài)維護
          • 數(shù)據(jù)范圍(數(shù)據(jù)權(quán)限)

          字段脫敏

          ?? mybatis-mate-sensitive-jackson[1]

          注解 @FieldSensitive 即可實現(xiàn)數(shù)據(jù)脫敏,內(nèi)置 手機號郵箱銀行卡號 等 9 種常用脫敏規(guī)則

          屬性類型必須指定默認值描述
          typeString""脫敏類型

          數(shù)據(jù)敏感詞過濾

          ?? mybatis-mate-sensitive-words(opens new window)[2]

          數(shù)據(jù)敏感詞過濾(AC 算法)配置完處理器,框架自動處理請求的所有字符串敏感詞過濾,支持嵌套關(guān)鍵詞讓敏感詞無處遁形。

          數(shù)據(jù)庫自維護敏感詞庫(免費、可控),默認加載緩存詞根支持指定重新加載詞庫。

          字段加密解密

          ?? mybatis-mate-encrypt(opens new window)[3]

          注解 @FieldEncrypt 即可實現(xiàn)對字段的加密解密,支持 MD5_32、MD5_16、AES、RSA 等算法。

          屬性類型必須指定默認值描述
          passwordString""加密密碼
          algorithmAlgorithmPBEWithMD5AndDESPBE MD5 DES 混合算法
          encryptorClassIEncryptor加密處理器
          @FieldEncrypt
          private?String?email;

          算法 Algorithm

          算法描述
          MD5_3232 位 md5 算法
          MD5_1616 位 md5 算法
          BASE6464 個字符來表示任意二進制數(shù)據(jù)算法
          AESAES 對稱算法
          RSA非對稱加密算法
          SM2國密 SM2 非對稱加密算法,基于 ECC
          SM3國密 SM3 消息摘要算法,可以用 MD5 作為對比理解
          SM4國密 SM4 對稱加密算法,無線局域網(wǎng)標準的分組數(shù)據(jù)算法
          PBEWithMD5AndDES混合算法
          PBEWithMD5AndTripleDES混合算法
          PBEWithHMACSHA512AndAES_256混合算法
          PBEWithSHA1AndDESede混合算法
          PBEWithSHA1AndRC2_40混合算法

          ?? 國密 SM2.3.4 算法使用規(guī)范(opens new window)[4]

          MD5 算法為不可逆算法,存儲數(shù)據(jù)庫及查詢結(jié)果都是密文 SM4 算法必須依賴 bouncycastle 加密庫 混合算法必須依賴 jasypt 加密庫 【注意】查詢返回加密對象必須包含加密注解信息,單純的返回某個 String 或者 List 某個集合是無法解密的。

          數(shù)據(jù)審計(對賬)

          ?? mybatis-mate-audit(opens new window)[5]

          數(shù)據(jù)審計功能可以幫助我們對比兩對象屬性差異,例如:銀行流水對賬。

          多數(shù)據(jù)源分庫分表(讀寫分離)

          ?? mybatis-mate-sharding(opens new window)[6]

          • 注解 @Sharding
          屬性類型必須指定默認值描述
          valueString""分庫組名,空使用默認主數(shù)據(jù)源
          strategyClassRandomShardingStrategy分庫&分表策略
          • 配置
          mybatis-mate:
          ??sharding:
          ????health:?true?#?健康檢測
          ????primary:?mysql?#?默認選擇數(shù)據(jù)源
          ????datasource:
          ??????mysql:?#?數(shù)據(jù)庫組
          ????????-?key:?node1
          ??????????...
          ????????-?key:?node2
          ??????????cluster:?slave?#?從庫讀寫分離時候負責?sql?查詢操作,主庫?master?默認可以不寫
          ??????????...
          ??????postgres:
          ????????-?key:?node1?#?數(shù)據(jù)節(jié)點
          ??????????...
          • 注解 Sharding 切換數(shù)據(jù)源,組內(nèi)節(jié)點默認隨機選擇(查從寫主)
          @Mapper
          @Sharding("mysql")
          public?interface?UserMapper?extends?BaseMapper<User>?{

          ????@Sharding("postgres")
          ????Long?selectByUsername(String?username);

          }
          • 切換指定數(shù)據(jù)庫節(jié)點
          //?切換到?mysql?從庫?node2?節(jié)點
          ShardingKey.change("mysqlnode2");

          其他

          還有像數(shù)據(jù)范圍(數(shù)據(jù)權(quán)限)、表結(jié)構(gòu)自動維護、字段數(shù)據(jù)綁定(字典回寫)等比較實用的高級特性,我們這里就不做詳細介紹了。

          感興趣的小伙伴可以去看看官方的文檔(中文文檔,寫的很詳細):https://baomidou.com/guide/mybatis-mate.html 。

          總結(jié)

          講真,這些新特性真心比較實用,可以為我們開發(fā)企業(yè)級項目節(jié)省很多精力。

          如果大家在企業(yè)內(nèi)有 mybatis-mate 使用場景,不妨支持一下。更多 mybatis-mate 使用示例詳見:https://gitee.com/baomidou/mybatis-mate-examples

          參考資料

          [1]

          mybatis-mate-sensitive-jackson: https://gitee.com/baomidou/mybatis-mate-examples/tree/master/mybatis-mate-sensitive-jackson

          [2]

          mybatis-mate-sensitive-words(opens new window): https://gitee.com/baomidou/mybatis-mate-examples/tree/master/mybatis-mate-sensitive-words

          [3]

          mybatis-mate-encrypt(opens new window): https://gitee.com/baomidou/mybatis-mate-examples/tree/master/mybatis-mate-encrypt

          [4]

          國密 SM2.3.4 算法使用規(guī)范(opens new window): https://gitee.com/baomidou/mybatis-mate-examples/tree/master/國密SM2.3.4算法使用規(guī)范

          [5]

          mybatis-mate-audit(opens new window): https://gitee.com/baomidou/mybatis-mate-examples/tree/master/mybatis-mate-audit

          [6]

          mybatis-mate-sharding(opens new window): https://gitee.com/baomidou/mybatis-mate-examples/tree/master/mybatis-mate-sharding

          ············? END? ··············

          也許你還想看
          ??|?官宣!我升級了!!!
          ? |?我在 B 站淘了 2 個 Java 實戰(zhàn)項目! 小破站,YYDS!
          ? |?1w+字的 Dubbo 面試題/知識點總結(jié)!(2021 最新版)
          ? |?7年前,24歲,出版了一本 Redis 神書
          ? |?京東二面:為什么需要分布式ID?你項目中是怎么做的?
          ? |?再見 Spring Task,這個定時任務(wù)框架真香!
          ? |?一鍵生成數(shù)據(jù)庫文檔,堪稱數(shù)據(jù)庫界的Swagger
          ? |?來看看這個超好用的項目腳手架吧!5分鐘搭建一個Spring Boot 前后端分離系統(tǒng)!
          ? |?阿里開源的15個頂級Java項目!!!

          我是 Guide哥,一個工作2年有余,接觸編程已經(jīng)6年有余的程序員。大三開源 JavaGuide,目前已經(jīng) 100k+ Star。未來幾年,希望持續(xù)完善 JavaGuide,爭取能夠幫助更多學習 Java 的小伙伴!共勉!凎!點擊即可了解我的個人經(jīng)歷

          簡歷指導/Java 學習/面試指導/面試小冊,歡迎加入我的知識星球(公眾號后臺回復“星球”即可)。

          瀏覽 55
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久热官网 | 中文字幕第一区 | 一区二区区日韩性爱 | 草草免费视频 | 日韩在线 |