[ 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와 엔티티의 필드 이름이 같다면 자동으로 매핑
'Java > 공부공부' 카테고리의 다른 글
[Java] 자바에서 리눅스 명령어 실행 (JSch , Session , ChannelExec ) (0) | 2024.11.06 |
---|---|
[Java] Stream API (Collectors 클래스) (0) | 2024.10.29 |
[JAVA] 리플렉션 (Relection) (0) | 2024.10.25 |
[JAVA/JSP] jsp include (0) | 2024.10.16 |
[JAVA/JPA] CompletableFuture 자바 비동기 처리 (멀티스레드) (0) | 2024.10.16 |