數(shù)據(jù)脫敏組件 quick-transform 1.1.0版本更新
介紹
quick-transform-spring-boot-starter是一款基于SpringBoot的返回值數(shù)據(jù)處理組件,主要目的是用于數(shù)據(jù)脫敏等返回數(shù)據(jù)額外處理操作
1.該組件提供默認(rèn)的注解和對應(yīng)的處理策略利用AOP,可以便捷的對一些常見敏感數(shù)據(jù)進(jìn)行數(shù)據(jù)修改操作
2.允許用戶添加自定義的處理策略對方法返回值進(jìn)行便攜加工
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版本新增原始數(shù)據(jù)備份
- 原始數(shù)據(jù)備份默認(rèn)是關(guān)閉狀態(tài),開啟數(shù)據(jù)備份后,會將數(shù)據(jù)轉(zhuǎn)換之前的原始數(shù)據(jù)備份到線程中(基于ThreadLocal),在之后需要使用原始數(shù)據(jù)時即可通過工具類獲取.
- 開啟方式:
- 全局配置: 在配置文件中添加transform.open-backups,接收布爾類型,true表示開啟全局原始數(shù)據(jù)備份.
- 注解配置: @MethodTransform,@Transform,@DataTransform及其語義化注解中均包含backups字段,默認(rèn)為FOLLOW,表示跟隨全局配置.如果需要開啟數(shù)據(jù)備份,設(shè)置為OPEN.
- 優(yōu)先級說明:
- 注解配置優(yōu)先級高于全局配置,無論全局如何,只要注解上設(shè)置為OPEN,就會執(zhí)行原始數(shù)據(jù)備份.注解默認(rèn)跟隨全局配置
- 與@MethodTransform相同,當(dāng)原始數(shù)據(jù)是實(shí)體類,而方法與實(shí)體類同時聲明了備份設(shè)置時,是否備份以方法上的配置為準(zhǔn),如果方法沒有配置,才以實(shí)體類上的@Transform為準(zhǔn).
- 獲取/刪除備份數(shù)據(jù)
- 數(shù)據(jù)轉(zhuǎn)換后會返回一個增強(qiáng)后的新數(shù)據(jù),需要使用該新數(shù)據(jù)對象來獲取原始數(shù)據(jù)
- 調(diào)用工具類TransformUtils的getBackup(T res)即可獲取原始數(shù)據(jù),res為數(shù)據(jù)轉(zhuǎn)換后獲取到的新數(shù)據(jù)實(shí)例
- 調(diào)用工具類TransformUtils的removeBackup(T res)即可刪除指定數(shù)據(jù)的原始數(shù)據(jù),res為數(shù)據(jù)轉(zhuǎn)換后獲取到的新數(shù)據(jù)實(shí)例
- 調(diào)用工具類TransformUtils的removeAllBackup()即可刪除全部備份數(shù)據(jù)
- 支持的數(shù)據(jù)類型
- 目前只支持基本數(shù)據(jù)類型(含包裝類),String和實(shí)體類實(shí)例的數(shù)據(jù)備份,集合數(shù)組等類型暫不支持,如果對這些數(shù)據(jù)類型設(shè)置為備份,會在日志提示相關(guān)信息,不會導(dǎo)致程序終止,另外也無法獲取到備份數(shù)據(jù)
- 備份數(shù)據(jù)的存儲容器是HashMap,所以當(dāng)存入相同key時,舊的數(shù)據(jù)會被覆蓋,屆時會有相關(guān)日志提示.
- 其他說明
- 數(shù)據(jù)備份是以進(jìn)入策略類transform(T t)方法的實(shí)例為單位的,所以在進(jìn)行數(shù)據(jù)備份時是將T t進(jìn)行備份,實(shí)體類中字段上聲明的注解的備份配置不會有任何效果
- 推薦使用注解的備份配置而不是全局配置,只在需要使用原始數(shù)據(jù)時才對數(shù)據(jù)進(jìn)行備份,避免不必要的開銷
- 備份數(shù)據(jù)是存儲于線程中的,如果你的線程是長時間存在不會自動關(guān)閉的,可以使用TransformUtils相關(guān)的方法刪除數(shù)據(jù),防止出現(xiàn)內(nèi)存溢出問題