Controller vs RestController
기존 MVC Controller
- view 기술을 사용하며, 주로 view(화면)을 return 해줌
Restful 웹 서비스 Controller
- 객체를 반환하기만 하면 객체 데이터는 JSON/XML 형식의 HTTP 응답을 작성하여 return 해줌
- Data를 return하는 것이 주 용도
Spring MVC의 흐름
- 클라이언트는 URL 형식으로 Web Service에 요청(request)을 함
- 요청은 Handler Mapping과 그 type을 찾는 DispatcherServlet에 의해 인터셉트 됨
- 요청은 Controller에 의해 처리 되고 응답은 DispatcherServlet으로 리턴된 후 DispatcherServlet은 View로 디스패치됨
- 이처럼 Spring MVC Flow는 ModelAndView 객체가 Controller에서 Client로 전달됨
- BUT, @ResponseBody 어노테이션을 사용하면 View를 return 하지 않고, Controller에서 직접 Data를 return해줄 수 있음
@RestController
참조 : https://devmoony.tistory.com/103 | 코딩무니 | 무니의 개발 로그