Java/공부공부
[JAVA] objectMapper, modelMapper
phyho
2024. 10. 25. 16:55
[ 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와 엔티티의 필드 이름이 같다면 자동으로 매핑