关于java:官宣MybatisPlus-官方神器发布

78次阅读

共计 2570 个字符,预计需要花费 7 分钟才能阅读完成。

明天举荐一个 MyBatis – Plus 官网公布的神器:mybatis-mate

mybatis-mate 为 Mybatis-Plus 企业级模块,反对分库分表,数据审计、数据敏感词过滤(AC 算法),字段加密,字典回写(数据绑定),数据权限,表构造主动生成 SQL 保护等,旨在更麻利优雅解决数据。

不过,须要留神的是:这些个性目前购买受权,并不是收费凋谢应用。

上面我会简略介绍一下这些高级个性以及应用办法。

应用

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

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-mate-starter</artifactId>
  <version>1.0.8</version>
</dependency>

注解(实体分包应用):

<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 加密处理器
@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 分库 & 分表策略
  • 配置
mybatis-mate:
  sharding:
    health: true # 衰弱检测
    primary: mysql # 默认抉择数据源
    datasource:
      mysql: # 数据库组
        - key: node1
          ...
        - key: node2
          cluster: slave # 从库读写拆散时候负责 sql 查问操作,主库 master 默认能够不写
          ...
      postgres:
        - key: node1 # 数据节点
          ...
  • 注解 Sharding 切换数据源,组内节点默认随机抉择(查从写主)
@Mapper
@Sharding("mysql")
public interface UserMapper extends BaseMapper<User> {@Sharding("postgres")
    Long selectByUsername(String username);

}
  • 切换指定数据库节点
// 切换到 mysql 从库 node2 节点
ShardingKey.change("mysqlnode2");

其余

还有像数据范畴(数据权限)、表构造主动保护、字段数据绑定(字典回写)等比拟实用的高级个性,咱们这里就不做具体介绍了。

感兴趣的小伙伴能够去看看官网的文档(中文文档,写的很具体):https://baomidou.com/guide/my…。

总结

讲真,这些新个性真心比拟实用,能够为咱们开发企业级我的项目节俭很多精力。

如果大家在企业内有 mybatis-mate 应用场景,无妨反对一下。更多 mybatis-mate 应用示例详见:https://gitee.com/baomidou/my…

正文完
 0