반응형
결론은 @ResponseBody어노테이션을 사용해도, Getter 사용하지 않는 필드는 자동으로 JSON 변환이 안됩니다. (Getter를 사용해!)
롬복 @Data 어노테이션을 남발하다 보면, 기본적인 @ResponseBody가(이것도 물론 @RestController로 사용하긴 합니다.) 작동하는 최소의 조건을 잊고 살 수 있다. 토이 프로젝트를 진행하면서 최소한의 어노테이션으로 진행해보려고 하니 예전에 배웠던 것들도 다시 한번 정리하는 시간을 가지게 되었다. 하나둘 씩 정리해서 블로그에 올리려고 한다.
1. @ResponseBody
- @ResponseBody 어노테이션은 컨트롤러 메서드에서 반환되는 객체를 HTTP 응답 본문에 직접 쓰기 위해 사용됩니다.
- 반환 타입에 따라 적절한 HttpMessageConverter가 선택되어 해당 객체를 변환 후 응답 바디에 쓰여진다.
2. HttpMessageConverter
- 스프링에서 요청과 응답할 때 HttpMessageConverter를 사용해서 변환한다.
- 예를 들어, String은 StringHttpMessageConverter가 선택되어 반환.
- Json은 MappingJackson2HttpMessageConverter 가 선택되어서 반환.
- MappingJackson2HttpMessageConverter가 반환할 때, 필드의 Getter를 사용해서 JSON객체로 변환한다.
반응형
'Back-end > Spring' 카테고리의 다른 글
[Mybatis] resultMap을 이용해서 쿼리 서브 정보 받아오기 (left join 정보 받아오기) (0) | 2023.07.15 |
---|---|
[Spring] 컨트롤러 Request, Response 간단한 예시 (0) | 2023.05.16 |
[Spring] 빈(Bean) 주입 받는 방법 가장 쉬운 예시 (0) | 2023.03.15 |
[Spring] @Configuration과 @Component 사용법과 차이 (0) | 2023.03.15 |
[Spring] application.yml로 mysql DB 연동 (0) | 2023.03.15 |