개발 지식/Spring

[Spring] 필드가 1개인 DTO는 기본 생성자가 없을 시 에러가 발생한다.

서하빈 2023. 12. 27. 09:46

- 필드가 2개 이상인 경우에는 Getter와 Builder 애너테이션만 붙여도 정상적으로 동작하지만 1개인 경우에는 json을 자바 객체로 매핑하는 deserialize(역직렬화)를 할 수 없다는 에러가 발생한다.

 

 

해결 방법

1. @JsonCreator을 생성자에 붙인다.

 

2. @Jacksonized을 빌더와 같이 사용(필드를 포함한 생성자와 사용 가능)

 

 

3. 기본 생성자 사용

 

 

 

참고 자료

https://velog.io/@ifi9/%ED%95%84%EB%93%9C%EA%B0%80-1%EA%B0%9C%EC%9D%B8-DTO%EB%A5%BC-Jackson-Deserialize-%ED%95%A0-%EC%8B%9C-%EB%AC%B8%EC%A0%9C%EC%A0%90

 

필드가 1개인 DTO를 Jackson - Deserialize 할 시 문제점

간단한 프로젝트의 API를 만들 때에는 아래와 같은 Controller를 만들고는 했다.그런데 우연찮게 알게 된 것인데 시그니처의 매개변수로 받는 위와 같은 필드가 1개인 DTO에서 AbstractJackson2HttpMessageCon

velog.io