티스토리 뷰
반응형
API를 호출하여 원하는 데이터를 가지고 왔는데, 이 데이터를 그대로 저장하는게 아니라 가공하여 저장하고 싶은 데이터만 저장해야 하는 경우가 있습니다. 말로 설명하려니 조금 어려운 부분이 있네요...
왼쪽 Order에서 Data를 오른쪽 OrderDTO에 옮겨야 하는 경우!! 휴.,.
이럴경우 보통 Getter, Setter 또는 Builder Pattern을 사용하여 값을 옮겨 줍니다.
간단하게 변수가 2~5개 정도면 상관 없지만, 엄청 나게 많은 경우에는 가독성도 안좋고 노가다 작업이 될 것입니다.
이럴 때 ModelMapper를 사용합니다. 밑에 Url을 클릭하면 정말 자세하게 설명이 나와있습니다.
http://modelmapper.org/getting-started/
먼저 의존성을 추가합니다. 그리고 Bean 설정을 해주고~ Autowired로 주입받으면 끝 입니다.
<!-- https://mvnrepository.com/artifact/org.modelmapper/modelmapper -->
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.2</version>
</dependency>
@Bean
public ModelMapper modelMapper(){
return new ModelMapper();
}
@Autowired
private ModelMapper modelMapper;OrderDTO orderDTO = modelMapper.map(order, OrderDTO.class);
order에 있는 Data를 OrderDTO에 옮긴다는 소스 입니다.
assertEquals(order.getCustomer().getName().getFirstName(), orderDTO.getCustomerFirstName());
assertEquals(order.getCustomer().getName().getLastName(), orderDTO.getCustomerLastName());
assertEquals(order.getBillingAddress().getStreet(), orderDTO.getBillingStreet());
assertEquals(order.getBillingAddress().getCity(), orderDTO.getBillingCity());
Junit을 사용하여 데이터 검증을 해볼 수도 있습니다.
기본적으로는 이름이 같다면 매칭이 되어 데이터가 옮겨 집니다. 이름 외에도 다양한 방법을 통해 데이터 매칭을 시킬 수 있습니다.
ex) 접근 권한, 이름 규칙, 제외시킬 것, 토큰 화 등등..
저는 아직 기본 설정 외에는 사용해 본 적은 없습니다.
반응형
'jvm언어관련 > Spring(SpringBoot)' 카테고리의 다른 글
Spring Data JPA Audit (0) | 2019.04.29 |
---|---|
SpringBoot Mail 사용하기 (0) | 2019.03.09 |
간단한 springboot error 처리 (0) | 2019.02.22 |
[책]자바 기반의 마이크로서비스 이해와 아키텍처 구축하기 (0) | 2019.02.18 |
EhCache 사용(Spring+Maven) (0) | 2019.02.11 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 슬랙봇
- java
- effectivejava
- 뱅셀 유전자
- 슬랙 /
- update query set multiple
- update query
- vue.js
- update query mutiple row
- update set multi
- update query multi row
- 싱글턴
- update set multiple
- 슬랙
- SpringBoot
- gradle
- 이펙티브자바
- multiple row update
- MSSQL
- spring-boot-starter-data-redis
- springboot https
- 이것이 자바다
- 몽고DB 완벽가이드
- 다중 업데이트
- 뱅크샐러드 유전자
- 뱅크샐러드
- visual studio code
- Slack
- 업데이트 쿼리
- 그레이들
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함