| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
FastBeanCopier类. 提供高效的bean复制.支持复杂结构,类型转换,集合泛型,支持bean到map,map到bean的复制.
原理: 使用工具类Proxy,通过javassist去动态构造一个类,通过原生的方式调用get set方法.而不是通过低效的反射.
//将source对象中的属性复制到target中.
FastBeanCopier.copy(source,target);
//将source对象中的属性复制到target中.不复制id字段
FastBeanCopier.copy(source,target,"id");约定: 如果属性类实现了Cloneable接口,在复制的时候将调用clone方法.所以如果你实现了Cloneable接口,就必须重写clone方法并且为public修饰的.
可通过枚举来定义数据字典,定义一个枚举,并实现EnumDict接口:
@AllArgsConstructor
@Getter
@Dict(id="data-status") //定义一个id,默认为 DataStatusEnum.class.getSimpleName();
public enum DataStatusEnum implements EnumDict<Byte> {
ENABLED((byte) 1, "正常"),
DISABLED((byte) 0, "禁用"),
LOCK((byte) -1, "锁定"),
DELETED((byte) -10, "删除");
private Byte value;
private String text;
}在实体类中使用:
@Data
public class User {
private String id;
//单选
private DataStatusEnum status;
//多选
private DataStatusEnum[] statusArr;
}作用:
注意: 1,2的功能由hsweb-commons-dao模块去实现,如果你不没有使用hsweb自带的dao实现,可能无法使用此功能.
所有的字典都会注册到:DictDefineRepository,可通过此类去获取字典,以提供给前端或者其他地方使用.
org.hswebframework.web.bean.ToString提供了对Bean转为String的功能.包括字段脱敏(打码).
@lombok.Getter
@lombok.Setter
public class MyEntity{
//敏感字段,在ToString的时候会给字段打码.比如: 185*****234
@org.hswebframework.web.bean.ToString.Ignore
private String userPhone;
public String toString(){
return org.hswebframework.web.bean.ToString.toString(this);
}
}| Back | FazBrowse Home | New Git URL |