반응형
Class간 property를 복사해야 할 경우.
각 프로퍼티 별 setter를 나열하는 코드 보단. BeanUtils.copyProperties를 사용하면 훨씬 깔끔
하게 구현이 가능하다.
예를들어,
@Data
@AllArgsConstructor
@NoArgsConstructor
class Person {
private String name;
private Integer id;
private String address;
private String phone;
}
Person person1 = new Person("test1", 1, "Seoul", "010-1234-1234");
Person person2 = new Person("test2", 2, "Incheon", "010-1234-1234");
// 변경 전
person2.setName(person1.getName());
person2.setAddress(person1.getAddress());
person2.setId(person1.getId());
person2.setPhone(person1.getPhone());
// 변경 후
BeanUtils.copyProperties(person1, person2);
변경 후 코드를 보면 훨씬 깔끔하게 수정된걸 볼 수 있다.
또, 특정 property에 대해 ignore를 하려고 한다면
BeanUtils.copyProperties(person1, person2, "name", "phone");
위와 같이 ignore하고자 하는 property에 대해 매개변수로 입력해주면 된다.
그 이외의 BeanUtils에서 사용되는 유용한 메서드
- findMethod
- findDeclaredMethod
- findPrimaryConstructor
반응형
'Back > Spring Java' 카테고리의 다른 글
Class Object Entity convert to Map (0) | 2020.01.14 |
---|---|
JPA findAll Specification (0) | 2020.01.14 |
Blob형태의 이미지 파일 입출력 (0) | 2019.12.19 |
Spring Security Login (2) | 2019.12.18 |
가변인자 Varargs (0) | 2019.12.18 |