[Spring] @RequestBody가 빈 생성자가 필요한 이유
- 코딩/Spring
- 2022. 11. 14.
[Spring] @RequestBody가 빈 생성자가 필요한 이유 알아보기
@RequestBody로 매핑할 객체는 HTTP 요청의 Body 데이터가 자바 객체로 변환될 때, 해당 객체의 빈 생성자가 호출되어 객체를 생성해야 합니다.
이는 Spring에서 Jackson 라이브러리를 이용하여 JSON 데이터를 객체로 변환하는 과정에서 발생하는데, Jackson 라이브러리는 객체를 생성할 때 기본 생성자(default constructor)를 호출하기 때문입니다. 그리고 Spring에서는 @RequestBody를 이용하여 요청의 Body를 자바 객체로 매핑할 때 Jackson 라이브러리를 사용합니다. 따라서 @RequestBody로 매핑할 객체는 빈 생성자가 있어야 Jackson 라이브러리가 객체를 생성할 수 있습니다.
예시 User 클래스
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
// getter, setter, toString 등의 메소드 생략
}
위 User 클래스는 생성자를 하나 가지고 있고, 인자를 받아서 객체를 생성합니다. 이 경우, @RequestBody로 매핑할 수 없는 객체가 됩니다. 그 이유는 빈 생성자가 없기 때문입니다.
'코딩 > Spring' 카테고리의 다른 글
[Spring] 캐시(Cache) 추상화와 사용법(@Cacheable, @CachePut, @CacheEvict) (0) | 2022.11.16 |
---|---|
[Spring] Entity에 protected 생성자를 만드는 이유(@Noargsconstructor) (0) | 2022.11.15 |
[Spring] LocalDateTime.now() 테스트하기 (0) | 2022.11.14 |
[Spring] Entity vs DTO vs VO (0) | 2022.11.11 |
[Spring] JPA 생성, 변경 일시 자동생성 및 format 변경 (0) | 2022.11.11 |