Spring boot Request DTO에 null 값이 들어올 경우 (오류)
Request DTO에 들어오는 필드 명이 틀리지도 않은 데 Request DTO에 null 값이 들어오는 오류가 발생하는 경우가 있습니다.
이 오류의 원인을 알려면 jackson 규칙에 대해서 알아야 합니다.Jackson 규칙
첫번째, 맨앞 두글자가 모두 대문자 인 경우 이어진 대문자를 모두 소문자로 변경하는 것
두번째, 위에 경우가 아닐 때는 맨 앞글자만 소문자로 바꿔주는 것이 두가지 입니다.
만약 request dto에 null값이 들어온다면,DTO의 필드명이 대문자인데 소문자로 변경되어서 필드명이 맞지 않아 null값으로 들어왔을 가능성이 있습니다.
DTO의 필드명이 대문자로 시작하면 Getter도 대문자로 시작해야하는데 jackson의 규칙에 따라 get 이후가 대문자로 시작하면 첫글자는 항상 소문자로 바뀌게 되어 필드명과 일치하지 않아서 데이터가 들어가지 않는 것입니다.
만약, json으로 넘어오는 값의 맨 앞 글자를 바꿀 수 없을 경우 jsonProperty를 사용하면 됩니다.
ex)
DTO에서public class RequestDTO{ @JsonProperty("DTO") private String dto; }