java使用注解进行数据脱敏处理

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

一:日志打印脱敏和页面数据显示处理问题

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();
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值