如何使用@ToString注释或通过创建新注释来记录值

时间:2017-07-17 08:59:53

标签: java spring annotations

我想创建自己的自定义注释,我使用的是Spring框架。

当有人注释他的POJO类时,后面的代码会触发方法。

例如@Sensetive(values =" accountNumber") 在下面的课堂上注释时

public class User {
   protected String user = "";
   protected String code = "";
   protected String accountNumber = "";
}

将调用一种方法,在记录值时,它们将显示为屏蔽(例如accountNumber =" 12345" - > masked accountNumber = XXXX5)。

我知道@ToString注释在调用toString方法时可以完全排除该值,但有可能掩盖它吗?

1 个答案:

答案 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,因此覆盖此方法将有助于屏蔽详细信息。