一、需求

        在日常开发过程中经常会遇到一些实体类中定义的字段是敏感字段,例如密码,手机号等敏感信息,有需要将实体信息打印到日志中的情况。所以需要在调用日志打印框架时想将敏感字段隐藏掉,不要输出到日志中。

二、解决方案

        大多数情况的日志打印都是将实体直接转成Sting,因此我们可以使用Lombok工具包提供的@ToString注解来实现针对实体转成字符创输出时,隐藏某些敏感字段。

        注意:此方法仅限于打印时直接将实体类以String的方式输出。不支持转成JSON格式的输出。

1、@ToString(exclude=“psw”)

        排除实体中psw列所对应的元素,即在生成toString方法时不包含psw参数以及对应参数的值;

2、@ToString(exclude={“psw”,“id”})

        排除多个psw、id列所对应的元素。

3、@ToString(of=“name”)

        只生成包含name列所对应的元素的参数的toString方法。

4、@ToString(o{“id”,“name”})

        只生成包含id、name列所对应的元素的参数的toString方法。

三、示例

1、打印时排除OprPwd的打印输出

@Data
@ToString(exclude="oprPwd")
@NoArgsConstructor
public class SquadRequest {

	private String oprId;

	private String name;

	private String oprPwd;

}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐