@RestController와 @Controller는 모두 컨트롤러 빈을 등록할 때 사용하는 어노테이션이지만 차이가 있다.
@Controller
@Controller는 view page를 반환한다.
만약 json 타입을 반환하고자 하는 경우 @ResponseBody 어노테이션을 추가한다. @ResonseBody를 사용하면 객체를 반환하고, 객체는 HTTP response body가 담을 수 있는 json이나 xml 타입으로 변환하여 Get 요청을 보낸 클라이언트는 json 타입으로 객체를 받게 된다. 즉 viewResolver를 사용하지 않는다.
@RestController
@RestController는 Restful Controller 라고 생각하면 된다. @Controller와 @ResponseBody가 포함된 어노테이션이다. 그래서 객체(VO, DTO)를 반환하고, 반환된 객체는 application/json 형식으로 HTTP Response Body에 작성된다.
HttpMessageConverter가 동작하여 문자 또는 객체를 처리해 http 의 body에 직접 반환된다.
2021.12.28 - [Web Programming] - [Spring-boot] @RequestBody, @ResponseBody : HTTP body에 데이터 송수신하기
'Server' 카테고리의 다른 글
검색 서비스 구현: SQL 작성 또는 Full-text search(Elastic Search) (0) | 2022.03.21 |
---|---|
Javascript/Typescript 기본 문법 정리 (0) | 2022.02.11 |
[Flutter] pagination: 스크롤 시 추가 데이터 로딩하기(무한스크롤) (0) | 2022.01.25 |
[spring-boot] application.properties-dev로 실행하기 (0) | 2022.01.19 |
[Spring-boot] @RequestBody, @ResponseBody : HTTP body에 데이터 송수신하기 (0) | 2021.12.28 |