반응형
서로 다른 클래스의 값을 복사 해주는 라이브러리이며, 필드명 일치 혹은 유사 필드 , 값일 없는 필드 복사 스킵 등 을 쉽게 도와 주는 라이브러리이다.
사용을 위한 dependency
<dependency> <groupId>org.modelmapper</groupId> <artifactId>modelmapper</artifactId> <version>2.3.8</version> </dependency>
사용 방법
//A 클래스를 B 클래스로 컨버팅 예제 ModelMapper modelMapper = new ModelMapper(); //MatchingStrategies 는 여러가지가 존재하며 상황에 맞게 사용 하도록 한다. //여기서는 필드명 완전일치 할 경우에만 진행 하도록 한다. modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); B b = modelMapper.map(a, B.class);
스프링에서 공통으로 사용 하도록 수정 및 사용
//config 설정 @Configuration public class BeanConfig { @Bean public ModelMapper modelMapper(){ ModelMapper modelMapper = new ModelMapper(); modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); //null field skip modelMapper.getConfiguration().setSkipNullEnabled(true); return modelMapper; } }
- 공통으로 클래스 컨버터 만들기
@Component
public class ClassConverter {
private final ModelMapper modelMapper;
public ClassConverter(ModelMapper modelMapper) {
this.modelMapper = modelMapper;
}
public <T,P> P converter(T src, Class<P> dest) {
return modelMapper.map(src, dest);
}
}
//사용
private final ClassConverter classConverter;
public class A {}
public class B {}
//A 클래스 값을 B 클래스 필드로 복사
B b = classConverter.converter(a,B.class);
반응형
'SpringBoot' 카테고리의 다른 글
Java conver t JsonArray to List (0) | 2021.10.31 |
---|---|
LocalDateTime hour step (0) | 2021.10.31 |
Spring AOP (0) | 2020.12.06 |
spring factory pattern (0) | 2020.10.19 |
spring webflux swagger config (0) | 2020.08.31 |