一:日志打印脱敏和页面数据显示处理问题
1, 有的时候需要对打印的数据进行脱敏处理,屏蔽关键信息和提供给页面显示的需要进行数据处理,可以使用日志工具和自行处理,这里使用注解和反射对数据进行处理(个人记录一下,各位看看就行了)
2,显示的效果
{
"code": "--",
"data": {
"name": "小小",
"address": "收i**佛i",
"workId": "333**333",
"count": 152
}
}
二:实现类容
1:处理单个对象数据
1,首先定义一个注解
/**
* 用于测试的注解
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface MarkAnnotation {
//注解的属性可以自行添加
String value() default "";
int start() default 0;//屏蔽长度,这里是字符前后几位屏蔽,默认全屏蔽
String mark() default "**";//这个是屏蔽字符,这个是默认的,可以自行选择
}
/**
* 测试对象
*/
public class Emp {
private String name;
@MarkAnnotation(start = 2)//从字符第二位开始,到结束前两位
private String address;
@MarkAnnotation(start = 3,mark = "--")//这里使用"--"屏蔽
private String workId;
private Integer count;
@Override
public String toString() {
return "Emp{" +
"name='" + name + '\'' +
", address='" + address + '\'' +
", workId='" + workId + '\'' +
", count=" + count +
'}';
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getWorkId() {
return workId;
}
public void setWorkId(String workId) {
this.workId = workId;
}
}
2,处理方法
/**
* 这个方法处理对象的,可以添加对字符和集合的处理
* @param obj
* @return
*/
public static String markDetail1(Object obj) {
//这里是对数据进行脱敏处理
if(obj instanceof String){
return obj.toString();
}
if(obj instanceof List){
return obj.toString();

本文介绍了如何在Java中使用注解和反射技术对日志打印的数据进行脱敏处理,包括单个对象和复杂对象的处理方法,以及处理过程中对字符串、列表和集合的示例操作。
最低0.47元/天 解锁文章
1301






