前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >官宣!Mybatis-Plus 官方神器发布!!!

官宣!Mybatis-Plus 官方神器发布!!!

作者头像
公众号 IT老哥
发布2021-12-01 14:52:55
9970
发布2021-12-01 14:52:55
举报

今天推荐一个 MyBatis - Plus 官方发布的神器:mybatis-mate

mybatis-mate 为 Mybatis-Plus 企业级模块,支持分库分表,数据审计、数据敏感词过滤(AC 算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据。

不过,需要注意的是:这些特性目前购买授权,并不是免费开放使用。

下面我会简单介绍一下这些高级特性以及使用方法。

使用

Spring Boot 引入自动依赖注解包 :

代码语言:javascript
复制
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-mate-starter</artifactId>
  <version>1.0.8</version>
</dependency>

注解(实体分包使用):

代码语言:javascript
复制
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-mate-annotation</artifactId>
  <version>1.0.8</version>
</dependency>

主要功能介绍

  • 字段脱敏
  • 数据敏感词过滤
  • 字段加密解密
  • 数据审计(对账)
  • 数据库分库分表、动态据源、读写分离、数据库健康检查自动切换。
  • 字典绑定
  • 表结构动态维护
  • 数据范围(数据权限)

字段脱敏

👉 mybatis-mate-sensitive-jackson[1]

注解 @FieldSensitive 即可实现数据脱敏,内置 手机号邮箱银行卡号 等 9 种常用脱敏规则

属性

类型

必须指定

默认值

描述

type

String

""

脱敏类型

数据敏感词过滤

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

数据敏感词过滤(AC 算法)配置完处理器,框架自动处理请求的所有字符串敏感词过滤,支持嵌套关键词让敏感词无处遁形。

数据库自维护敏感词库(免费、可控),默认加载缓存词根支持指定重新加载词库。

字段加密解密

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

注解 @FieldEncrypt 即可实现对字段的加密解密,支持 MD5_32、MD5_16、AES、RSA 等算法。

属性

类型

必须指定

默认值

描述

password

String

""

加密密码

algorithm

Algorithm

PBEWithMD5AndDES

PBE MD5 DES 混合算法

encryptor

Class

IEncryptor

加密处理器

代码语言:javascript
复制
@FieldEncrypt
private String email;

算法 Algorithm

算法

描述

MD5_32

32 位 md5 算法

MD5_16

16 位 md5 算法

BASE64

64 个字符来表示任意二进制数据算法

AES

AES 对称算法

RSA

非对称加密算法

SM2

国密 SM2 非对称加密算法,基于 ECC

SM3

国密 SM3 消息摘要算法,可以用 MD5 作为对比理解

SM4

国密 SM4 对称加密算法,无线局域网标准的分组数据算法

PBEWithMD5AndDES

混合算法

PBEWithMD5AndTripleDES

混合算法

PBEWithHMACSHA512AndAES_256

混合算法

PBEWithSHA1AndDESede

混合算法

PBEWithSHA1AndRC2_40

混合算法

👉 国密 SM2.3.4 算法使用规范(opens new window)[4]

MD5 算法为不可逆算法,存储数据库及查询结果都是密文 SM4 算法必须依赖 bouncycastle 加密库 混合算法必须依赖 jasypt 加密库 【注意】查询返回加密对象必须包含加密注解信息,单纯的返回某个 String 或者 List 某个集合是无法解密的。

数据审计(对账)

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

数据审计功能可以帮助我们对比两对象属性差异,例如:银行流水对账。

多数据源分库分表(读写分离)

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

  • 注解 @Sharding

属性

类型

必须指定

默认值

描述

value

String

""

分库组名,空使用默认主数据源

strategy

Class

RandomShardingStrategy

分库&分表策略

  • 配置
代码语言:javascript
复制
mybatis-mate:
  sharding:
    health: true # 健康检测
    primary: mysql # 默认选择数据源
    datasource:
      mysql: # 数据库组
        - key: node1
          ...
        - key: node2
          cluster: slave # 从库读写分离时候负责 sql 查询操作,主库 master 默认可以不写
          ...
      postgres:
        - key: node1 # 数据节点
          ...
  • 注解 Sharding 切换数据源,组内节点默认随机选择(查从写主)
代码语言:javascript
复制
@Mapper
@Sharding("mysql")
public interface UserMapper extends BaseMapper<User> {

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

}
  • 切换指定数据库节点
代码语言:javascript
复制
// 切换到 mysql 从库 node2 节点
ShardingKey.change("mysqlnode2");

其他

还有像数据范围(数据权限)、表结构自动维护、字段数据绑定(字典回写)等比较实用的高级特性,我们这里就不做详细介绍了。

感兴趣的小伙伴可以去看看官方的文档(中文文档,写的很详细):https://baomidou.com/guide/mybatis-mate.html 。

总结

讲真,这些新特性真心比较实用,可以为我们开发企业级项目节省很多精力。

如果大家在企业内有 mybatis-mate 使用场景,不妨支持一下。更多 mybatis-mate 使用示例详见:https://gitee.com/baomidou/mybatis-mate-examples

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT老哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用
  • 主要功能介绍
    • 字段脱敏
      • 数据敏感词过滤
        • 字段加密解密
          • 数据审计(对账)
            • 多数据源分库分表(读写分离)
              • 其他
              • 总结
              相关产品与服务
              数据库
              云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档