-
ModelMapper 를 사용하여 객체 컨버팅 하기Tech/SpringBoot 2021. 5. 23. 12:14반응형
서로 다른 클래스의 값을 복사 해주는 라이브러리이며, 필드명 일치 혹은 유사 필드 , 값일 없는 필드 복사 스킵 등 을 쉽게 도와 주는 라이브러리이다.
사용을 위한 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);
반응형'Tech > 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