티스토리 뷰

반응형

개요

사용자가 기존 데이터를 수정하게 되었을 때, 기존 데이터를 수정된 데이터로 바꾸는 과정이 필요합니다. 이런 경우, 원본 Domain(혹은 DTO)에게 수정된 내용을 주입하기 위해서 Setter를 이용하는 방법이 진행됩니다. 다만, 필드가 많은 경우 무의미하게 Setter가 많아지게 되고 코드가 길어지게 되는 문제가 생깁니다. 이런 경우 Setter대신 BeanUtils.copyProperties() 메소드를 이용하면 단 한줄로 과정이 처리가 됩니다.

Setter로 설정하는경우

public Book modifyBook(Book book) {
        Book bookById = bookRepository.findBookById(book.getId()); //기존 데이터

        bookById.setName(book.getName());
        bookById.setAuthor(book.getAuthor());
        bookById.setPublicationDate(book.getPublicationDate());
        bookById.setIsbn(book.getIsbn());
        bookById.setPublisher(book.getPublisher());

         . . . 

    }

BeanUtils.copyProperties()를 사용한 경우

public Book modifyBook(Book book) {
        Book bookById = bookRepository.findBookById(book.getId()); //기존 데이터

        BeanUtils.copyProperties(book, bookById);

        . . . 

    }


반응형
댓글