-
MapStruct 라이브러리 사용법Back-End/Spring 2022. 8. 29. 12:59728x90
Mastruct 라이브러리는 entityToDto 작업을 편리하게 진행 해 준다.
DI 프레임워크를 사용하지 않는 경우에도 사용할 수 있으며,
Spring과 같은 DI 프레임워크를 사용하면, 인터페이스만 정의 해 두면 빌드시점에 구현체를 만들어 준다.
해당 구현체는 인터페이스에 정의해 둔 정보를 기반으로 매핑 메서드들이 생성된다.
다음과 같이 매퍼를 작성 해 두면, 빌드 폴더에 구현체가 생성이 된다.
1. 특정 Entity를 받아서 특정 Dto로 변환하고자 할 때
=> 가장 기본적인 사용 용도이며, 위 그림에서 아래 2개의 메서드처럼 사용하면 된다.
2. 특정 Entity List를 받아서 특정 Dto List로 변환하고자 할 때
=> 첫 번째 메서드 정의와 같다. 자체적으로 Entity to Dto 메서드 구현체를 생성 해 준다. 단, 매핑 타겟의(여기서는 Dto) 내부 클래스의 매핑 메서드가 존재 하지 않는 경우, 예를 들어 (위의 그림에서는 존재하긴 하지만) GetAllItemInquiryResponseDto.ItemInquiry 내부의 ItemInquiryImage에 대한 매핑 함수가 없을 경우, 에러를 발생시킨다.
* 유의사항
1. primitive type은 매핑이 안 된다. 따라서, Wrapper 클래스를 사용해야 한다.
'Back-End > Spring' 카테고리의 다른 글
멀티 모듈 구현 시 발생했던 git 관련 이슈 (0) 2023.08.06 Stream을 List로 변환하는 2가지의 방법(Collectors.toList(), Stream.toList()) (1) 2023.04.18 nGrinder를 활용한 어플리케이션 성능테스트 (0) 2023.01.06 Spring Rest docs를 활용한 API 명세를 openapi3를 활용하여 swagger로 변환하기 (0) 2022.12.13 Spring Security cors 이슈 (0) 2022.10.21