728x90
반응형
# 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번 성공코드로 받기
}
- 끝 -
728x90
반응형