본문 바로가기
Spring/MVC

@Controller와 @RestController

by o3oppp 2024. 6. 6.
@Controller
  • @Controller는 Spring MVC의 Controller로 주로 View를 반환하기 위해 사용
  • 하지만 @ResponseBody를 통해 Data를 반환해야 하는 경우가 존재
@RestContoller
  • @RestController는 @Controller와 @ResponseBody가 합쳐진 형태로 JSON 형태의 객체 데이터를 반환
  • @ResponseBody가 적용되므로 선언 필요X
  • View 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력
  • Rest API(HTTP API)를 만들 때 사용하는 컨트롤러

View 반환 과정

view 반환(무작정 개발 티스토리 참조)

  1. 클라이언트는 URL 형식으로 요청을 보냄
  2. DispatcherServlet이 요청을 위임할 Handler Mapping을 찾음
  3. Handler Mapping을 통해 요청을 Controller에 위임
  4. Controller는 요청을 처리한 후 View Name을 Handler Adapter에게 반환
  5. Handler Adapter는 다시 Dispatcher Servlet에게 반환
  6. DispatcherServlet은 View Resolver를 통해 View Name에 해당하는 View를 찾아서 클라이언트에게 반환

Data 반환 과정

data 반환(무작정 개발 티스토리 참조)

  1. 클라이언트는 URL 형식으로 요청을 보냄
  2. DispatcherServlet이 요청을 위임할 Handler Mapping을 찾음
  3. Handler Mapping을 통해 요청을 Controller에 위임
  4. Controller는 요청을 처리한 후 객체 반환
  5. 반횐되는 객체는 JSON으로 직렬화돼서 클라이언트에게 반환

'Spring > MVC' 카테고리의 다른 글

BindingResult  (0) 2024.06.27
Model과 @ModelAttribute  (0) 2024.06.08
@RequestBody와 @ResponseBody  (0) 2024.06.06
애노테이션(Annotation)  (0) 2024.05.23
스프링 MVC 구조  (0) 2024.05.22