Back-End/Spring
MapStruct 라이브러리 사용법
쩡류
2022. 8. 29. 12:59
728x90
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 클래스를 사용해야 한다.