刚入行半年,仅仅是个人理解,如有不对之处欢迎大佬指出!!!!!
在做开发的过程中我们经常会碰到需要拷贝属性的地方,例如在entity实体和DTO实体相互拷贝的情况,那么如果使用get或者set方法的话,代码就会显得很复杂而且多,在Spring中提供了一个工具类BeanUtils。
BeanUtils中的copyProperties方法实现拷贝属性,具体用法如下:
//将employeeDTO中的属性拷贝到employee中
BeanUtils.copyProperties(employeeDTO,employee);
作为被拷贝的属性有个要求,那就是在这两个实体中定义的属性名必须相同,也就是两者必须有对应的成员变量,具体如下:
public class Employee {
private Long id;
private String username;
private String name;
private String password;
private String phone;
private String sex;
private String idNumber;
private Integer status;
private LocalDateTime createTime;
private LocalDateTime updateTime;
private Long createUser;
private Long updateUser;
}
public class EmployeeDTO {
private Long id;
private String username;
private String name;
private String phone;
private String sex;
private String idNumber;
}
Employee中的属性是数据库中对应的属性,DTO中的属性是从前端传回的表单属性,我们想要对数据库中的数据进行操作就要操作employee实体,那么前端传回的是DTO实体,通过属性拷贝之后,我们的employee实体可以拥有DTO实体中对应的属性,而没有的属性仍需要我们手动进行SET和GET方法。
个人理解,如有指教尽情留言,个人学习后总结。