数据脱敏组件 quick-transform 1.1.0版本更新
介绍
quick-transform-spring-boot-starter是一款基于SpringBoot的返回值数据处理组件,主要目的是用于数据脱敏等返回数据额外处理操作
1.该组件提供默认的注解和对应的处理策略利用AOP,可以便捷的对一些常见敏感数据进行数据修改操作
2.允许用户添加自定义的处理策略对方法返回值进行便携加工
3.项目地址:
码云: 查看gitee仓库
github: 查看github仓库
4.项目完整介绍: 完整介绍
安装教程
-
该组件已提交到中央仓库,直接引入下面依赖即可
<dependency> <groupId>com.github.Silwings-git</groupId> <artifactId>quick-transform-spring-boot-starter</artifactId> <version>1.1.0</version> </dependency>
1.1.0版本新增原始数据备份
- 原始数据备份默认是关闭状态,开启数据备份后,会将数据转换之前的原始数据备份到线程中(基于ThreadLocal),在之后需要使用原始数据时即可通过工具类获取.
- 开启方式:
- 全局配置: 在配置文件中添加transform.open-backups,接收布尔类型,true表示开启全局原始数据备份.
- 注解配置: @MethodTransform,@Transform,@DataTransform及其语义化注解中均包含backups字段,默认为FOLLOW,表示跟随全局配置.如果需要开启数据备份,设置为OPEN.
- 优先级说明:
- 注解配置优先级高于全局配置,无论全局如何,只要注解上设置为OPEN,就会执行原始数据备份.注解默认跟随全局配置
- 与@MethodTransform相同,当原始数据是实体类,而方法与实体类同时声明了备份设置时,是否备份以方法上的配置为准,如果方法没有配置,才以实体类上的@Transform为准.
- 获取/删除备份数据
- 数据转换后会返回一个增强后的新数据,需要使用该新数据对象来获取原始数据
- 调用工具类TransformUtils的getBackup(T res)即可获取原始数据,res为数据转换后获取到的新数据实例
- 调用工具类TransformUtils的removeBackup(T res)即可删除指定数据的原始数据,res为数据转换后获取到的新数据实例
- 调用工具类TransformUtils的removeAllBackup()即可删除全部备份数据
- 支持的数据类型
- 目前只支持基本数据类型(含包装类),String和实体类实例的数据备份,集合数组等类型暂不支持,如果对这些数据类型设置为备份,会在日志提示相关信息,不会导致程序终止,另外也无法获取到备份数据
- 备份数据的存储容器是HashMap,所以当存入相同key时,旧的数据会被覆盖,届时会有相关日志提示.
- 其他说明
- 数据备份是以进入策略类transform(T t)方法的实例为单位的,所以在进行数据备份时是将T t进行备份,实体类中字段上声明的注解的备份配置不会有任何效果
- 推荐使用注解的备份配置而不是全局配置,只在需要使用原始数据时才对数据进行备份,避免不必要的开销
- 备份数据是存储于线程中的,如果你的线程是长时间存在不会自动关闭的,可以使用TransformUtils相关的方法删除数据,防止出现内存溢出问题