문제
Lombok을 사용하는 프로젝트에서 발생한 문제.
Presentation 레이어에 응답하는 Response DTO에 @Getter
를 붙이지 않았더니 JSON으로 반환되지 않는다.
@NoArgsConstructor
public class ResponseDTO {
private Sting data;
}
원인
이는 JSON 으로 직렬화해주는 라이브러리에서 객체에 필드에 접근하기 위해 Getter 메서드들을 사용하지만, Getter가 없으면 해당 필드에 접근할 방법이 없게되고 직렬화 과정에서 제외된다.
해결 방법
해결 방법은 클래스 레벨에 @Getter
를 추가해주거나, 필드에 직접 @JsonProperty
를 사용해서 Getter가 없는 필드도 직렬화할 수 있도록 한다.
방법1.
@Getter
@NoArgsConstructor
public class ResponseDTO {
private Sting data;
}
방법2.
@NoArgsConstructor
public class ResponseDTO {
@JsonProperty("data") // json key-value 에서 key 에 해당하는 이름
private Sting data;
}
'Spring' 카테고리의 다른 글
[Spring] 회원탈퇴 시 Kakao OAuth2 연결끊기: REST API로 연결끊기 (OpenFeign) (2) | 2024.10.30 |
---|---|
[Spring] 직렬화/역직렬화 시 'is' prefix 가 안붙는 이유 (1) | 2024.10.30 |
[Spring Batch] ItemWriter 가 List<T> 를 전달받으려면? (Spring Batch 5) (0) | 2024.07.01 |