一.文章结构
1.敏感数据页面上部分显示,可以基于web拦截器返回前端前做修改,也可以基于mybatis拦截器在查询出来后做修改
2.项目集成(开箱即用,maven引入,返回类上加注解)
3.项目demo测试
4.实现原理剖析(自定义注解,mybaits拦截器使用,java反射的使用)
5.源码下载
二.项目集成
1.maven引入
<dependency>
<groupId>com.zenglx.assembly</groupId>
<artifactId>desensitization</artifactId>
</dependency>
三.项目demo测试
1.实体类增加注解
@Data
@Desensitize
public class DesensitizationDemo {
private String id;
@DesensitizeField(start = 3,end = 8)
private String telephone;
private String name;
@DesensitizeField(isObject = true)
private DesensitizationDemo desensitizationDemo;
@DesensitizeField(isList = true)
private List<DesensitizationDemo> desensitizationDemoList;
}
2.查询
@PostMapping("/testDesensitization")
@ApiOperation(value = "测试脱敏", notes = "返回结果")
public List<DesensitizationDemo> testDesensitization() {
System.out.println("测试脱敏");
return desensitizationDao.list();
}
3.结果展示
四.原理剖析
1.自定义注解,类上Desensitize,属性上注解DesensitizeField
2.mybatis拦截器,拦截返回对象,解析注解信息,定制查询显示
3.递归显示子类对象属性数据
五.源码下载
https://download.csdn.net/download/zengliangxi/21484285