我想创建自己的自定义注释,我使用的是Spring框架。
当有人注释他的POJO类时,后面的代码会触发方法。
例如@Sensetive(values =" accountNumber") 在下面的课堂上注释时
public class User {
protected String user = "";
protected String code = "";
protected String accountNumber = "";
}
将调用一种方法,在记录值时,它们将显示为屏蔽(例如accountNumber =" 12345" - > masked accountNumber = XXXX5)。
我知道@ToString注释在调用toString方法时可以完全排除该值,但有可能掩盖它吗?
答案 0 :(得分:-1)
您可以覆盖toString
方法并屏蔽其中的帐号,例如:
@Override
public String toString(){
String maskedAccountNumber = accountNumber.replaceAll("[0-9]+", "*"); //This is just an example, actual implementation might differ
return "user : " + user +
" code : " + code +
" account number : " + maskedAccountNumber;
}
所有日志记录/打印方法(例如System.out.println
)都会调用相应对象的toString
,因此覆盖此方法将有助于屏蔽详细信息。