当前位置: 首页 > 知识库问答 >
问题:

如何在使用@ToString注释或创建新注释记录时屏蔽值

宿建本
2023-03-14

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

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

例如@Sensetive(values=“accountNumber”)在下面的类上注释时

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

将调用一个方法,在记录值时,这些值将被屏蔽(例如accountNumber=“12345”-

我知道@ToString注释可以在调用toString方法时完全排除值,但是否有可能屏蔽它?

共有1个答案

郑锋
2023-03-14

您可以覆盖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)都将调用相应对象的字符串,因此覆盖此方法将有助于掩盖细节。

 类似资料:
  • 我有一个具有@Slf4j注释的类。 我试着写一个测试和模拟记录仪,但它不起作用。 测试是这样的: 这是我得到的错误: 问题是,如何嘲笑伐木工?

  • 我试图用< code > swagger-maven-plugin 来记录我的api。 当我用< code>@Parameter注释路由参数时,只要没有用< code>@BeanParam注释,就会在openapi生成的文件中很好地记录下来。 如招摇岩心文件所述, @Parameter可以代替或与JAX-RS参数注释(@PathParam、@QueryParam、@HeaderParam、@@Fo

  • 问题内容: 我正在尝试做一些Java注释魔术。我必须说,我仍在追赶注释技巧,并且某些事情对我来说还不太清楚。 所以…我有一些带注释的类,方法和字段。我有一个方法,它使用反射对类进行一些检查并将一些值注入到类中。这一切都很好。 但是,我现在面临的情况是我需要一个注释实例(可以这么说)。所以…批注与常规接口不同,您不能对类进行匿名实现。我知道了。我在这里浏览了有关类似问题的一些帖子,但似乎无法找到所需

  • 我想在Java中生成一个XFDF Stamp注释,它的内部会有一个透明的图像。我很难识别图像存储的格式以及如何将输入图像转换为该格式。 到目前为止我知道 null 我有一个包含图像的XFDF示例,当我解码图像时,我看到了如下语法,但遗憾的是,我不知道 标记中存在什么样的原始数据。 我已经设法在PDFBox的帮助下在PDF中创建了一个带有自定义图像的橡皮图章注释,但遗憾的是PDFBox似乎不支持将这

  • 问题内容: 我试图用来向没有定义主键的表中插入数据。 但是事实是该表的两个字段一起在表中是唯一的。我如何使用hibernate注释实现相同的目的? 这是我的代码。 问题答案: 您可以使用和创建复合键,并将其与您的实体进行映射。例如: 然后在Java代码中使用常规方式来持久化实体。 参考:http : //docs.jboss.org/hibernate/annotations/3.5/refere

  • 我试图创建一个使用的组合注释,但是我似乎无法使其工作。 这是有效的(使用): 但是,直接使用不起作用(大概是由于只允许在方法上使用): 无法将用作可组合注释吗?