본문 바로가기

🌱JAVA/✨ 유용한 라이브러리

ModelMapper 관련 내용 정리

# ModelMapper란?

어떤 오브젝트에 있는 필드값들을 자동으로 원하는 오브젝트로 맵핑 시켜준다.

보통 원하는 인풋값과 아웃풋 값이 다를때 getter/setter를 통해 데이터를 맵핑 시켜준다.

그런데 만약 결과값 중 일부만 옮길때 일일이 하나씩 확인해야 하는 번거로움이 존재한다.

이러한 작업들을 매우 비효율적인 작업일 가능성이 크다.

그래서 자동으로 맵핑해주는 라이브러리가 ModelMapper이다.

- 모델맵퍼의 사용은 총 3가지로 나뉜다.

- MatchingStrategies.STANDARD	지능적으로 매핑 해준다.
- MatchingStrategies.STRICT	정확히 일치하는 필드만 매핑 해준다
- MatchingStrategies.LOOSE	느슨하게 매핑 해준다

그외 다양한 기능을 활용 가능하다.

# 예제 코드는 아래와 같다.

    @PostMapping("/{userId}/orders")
    public ResponseEntity<ResponseOrder> createOrder(@PathVariable("userId") String userId,
                                                     @RequestBody RequestOrder orderDetails) {
        ModelMapper mapper = new ModelMapper();
        mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);

        OrderDto orderDto = mapper.map(orderDetails, OrderDto.class);
        orderDto.setUserId(userId);
        OrderDto createdOrder = orderService.createOrder(orderDto);

        ResponseOrder responseOrder = mapper.map(createdOrder, ResponseOrder.class);

        return ResponseEntity.status(HttpStatus.CREATED).body(responseOrder); //반환값을 201번 성공코드로 받기
    }

 

- 끝 -