数据脱敏
属性拷贝过程中,可能会有数据脱敏或者格式化的需求。对此,@Mapping
注解提供了mask
属性,可以灵活配置字符的模板。
mask支持的字符如下:
':额外字符标识(必须成对出现)
*:需要掩盖的字符
<:和任意字符结合使用,表示在此字符之前所有字符均要掩盖
A:任意字符
U:需要转大写的字符
L:需要转小写的字符
mask示例:
掩盖手机号中间4位:AAA****
掩盖邮箱从第3个字符到“@”的所有字符:AA<@
class Foo {
String email = "test@taocares.com";
String mobile = "13812345678";
}
class FooDto {
@Mapping(mask="AAA<@")
String email;
@Mapping(field="mobile", mask="AAA****AAAA")
String mobile1;
@Mapping(field="mobile", mask="AAA' 'AAAA' 'AAAA")
String mobile2;
}
FooDto fooDto = BeanUtils.copyProperties(foo, FooDto.class);
System.out.println(fooDto.getEmail()); // "tes*@taocares.com"
System.out.println(fooDto.getMobile1()); // "138****5678"
System.out.println(fooDto.getMobile2()); // "138 1234 5678"
Last updated