ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.