@Controller와 @RestController
@Controller와 @RestController 차이
@Controller란
- 전통적인 Spring MVC 컨트롤러이며, View를 반환하기위해 주로 사용
- Spring 구현 과정 중, 요청 처리후 ViewName을 반환하는 역할을 처리
@Controller로 Data 반환
- 위의 View 뿐만 아니라, Data를 반환하는 경우에는
@ResponseBody
어노테이션을 추가하면 Json으로 데이터 반환 가능
- 일반적으로 객체 반환시에는
ResponseEntity
로 감싸서 반환하며, ViewResolver 대신 HttpMessageConverter가 동작
- 해당 Converter는 데이터 타입에 따라 여러가지 컨버터가 적용
@RestController
@Controller
에 @ResponseBody
를 추가
- 주용도는 Json 형태로 객체 데이터를 반환하는 것
- REST API 개발 시 주로 ResponseEntity를 사용하는데 이는 앞서 언급한
@Controller
에 @ResponseBody
를 추가한 것과 동일