본문 바로가기

Java/공부공부

[JAVA] objectMapper, modelMapper

 

[ ObjectMapper ]

 - Jackson 라이브러리의 일부

 - JSON 데이터와 자바 객체 간의 직렬화 및 역직렬화에 사용.

 - 기본 생성자, getter/setter 가 필요하지만, 필드에 직접 접근하도록 설정 가능.

 -  @JsonProperty 을 사용하면 필드 이름이 달라도 매핑 가능.

 (getter만 있어도 매핑이 가능하다는데 이건 더 찾아보기)

 

convertValue() 메소드

ObjectMapper objectMapper = new ObjectMapper();

Map<String, Object> param = new HashMap<>();
param.put("name", "John");
param.put("age", 30);

MyEntity entity = objectMapper.convertValue(param, MyEntity.class);

 


 

[ ModelMapper ]

 - 유사한 구조의 클래스 간 변환에 사용. 필드 이름과 타입을 기준으로 자동 매핑.

 - 기본 생성자, setter 가 필요하지만, setFieldMatchingEnabled(true) 로 필드 접근을 활성화하여 setter 없이 매핑 가능.

 - PropertyMap을 사용하면 DTO와 엔티티 간의 특정 필드 매핑을 더 세밀하게 조정 가능.

 - MatchingStrategies 설정으로 매칭 엄격도 조정 가능. (LOOSE / STRICT)

 

map() 메소드

ModelMapper modelMapper = new ModelMapper();

UserDTO userDTO = new UserDTO();
userDTO.setName("John");
userDTO.setEmail("john@example.com");

UserEntity userEntity = modelMapper.map(userDTO, UserEntity.class);

=> DTO와 엔티티의 필드 이름이 같다면 자동으로 매핑