我想创建自己的自定义注释,我使用的是 Spring 框架。
当有人注释他的 POJO 类时,后面的代码将触发方法。
例如@Sensetive(values = "accountNumber")
当在下面的类上注释时
public class User {
protected String user = "";
protected String code = "";
protected String accountNumber = "";
}
将调用一个方法,当记录值时,它们将显示为屏蔽(例如 accountNumber = "12345"-> masked accountNumber = XXXX5)。
我知道 @ToString 注释可以在调用 toString 方法时完全排除该值,但是否有可能屏蔽它?
最佳答案
您可以覆盖 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
的各个对象,因此覆盖此方法将有助于掩盖细节。
关于java - 如何在使用 @ToString 注释或通过创建新注释记录时屏蔽值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139907/