[내배캠 Spring TIL] MapStruct 라이브러리 썸네일

[내배캠 Spring TIL] MapStruct 라이브러리

MapStruct
Java
2024년 8월 13일

MapStruct는 자바 객체 사이의 매핑을 자동으로 생성해주는 오픈소스 라이브러리이다.

주요 특징으로는

  • 컴파일 시점 매핑 코드 생성
  • 간단한 설정 및 사용 방법
  • 커스텀 매핑 지원

설치 #

dependencies {
    implementation 'org.mapstruct:mapstruct:1.5.5.Final'
    annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'
}

build.gradle에 위 코드를 추가하여 설치 가능하다.

사용 #

import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

@Mapper
public interface UserMapper {
    UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

    UserResponseDto toUserResponseDto(User user);
}

매핑 대상 클래스들 간의 매핑을 정의하기 위해 @Mapper 애노테이션을 사용하여 인터페이스를 생성하고, 매핑하는 메서드를 인터페이스에 정의하면 끝이다.

staticINSTANCE 멤버에 Mappers.getMapper(UserMapper.class)를 사용해 MapStruct에서 생성한 인스턴스를 사용한다.

필드 이름이 다른 경우 #

@Mapping 애노테이션을 사용하여 속성 간의 매핑을 명시적으로 설정할 수 있다.

@Mapping(source = "userName", target = "name")
UserDto userToUserDto(User user);

최근 게시물

김진근 • © 2025