본문 바로가기

FrameWork/Spring

[Spring] 객체를 간단하게 복사하기 (BeanUtils.copyProperties ( ) )

public class EleAuthApprovalReq extends BaseRequest {
  private int companyNo;
  private int uno;
  private ApprovalStatus approvalStatus;
  private int documentId;
  private String title;
  private String comment;
  private EleAuthVacation vacationInfo;
}
public class ApprovalDoc extends BaseCreateAndUpdateModel {
  private int companyNo;
  private int uno;
  private ApprovalStatus approvalStatus;
  private String approvalDocNo; 
  private int documentId;
  private String title;
  private Date draftDate; // 기안일자 
  private String interApprovAttachId; 
  private String comment;
  private String createdAt;
  private int createdUno; 
}

 

private ApprovalDoc convertToApprovalDoc(EleAuthApprovalReq req) {
  ApprovalDoc doc = new ApprovalDoc();
  BeanUtils.copyProperties(req, doc);
  return doc;
}

 

BeanUtils.copyProperties( ) 는 Spring Framework에서 제공하는 유틸리티 메서드로,

req 객체의 속성 값을 doc 객체의 동일한 이름을 가진 속성에 복사하는 역할을 합니다.

이 메서드는 두 객체 간의 데이터 전송을 간편하게 해주며, 수동으로 각 속성을 설정하는 번거로움을 줄여줍니다. 

 

 예를 들어, req 객체에 name이라는 속성이 있고 doc 객체에도 동일한 이름의 속성이 있다면, req 객체의 name 값이 doc 객체의 name 속성에 복사됩니다. 이 과정에서 두 객체의 속성 이름과 타입이 일치해야 합니다.

 

 

  private int companyNo;
  private int uno;
  private ApprovalStatus approvalStatus;
  private int documentId;
  private String title;
  private String comment;


여기서는 6가지의 공통된 속성이 복사가 되므로

6줄의 코드를 1줄로 줄일 수 있게 됩니다.