@Controller
- @Controller는 Spring MVC의 Controller로 주로 View를 반환하기 위해 사용
- 하지만 @ResponseBody를 통해 Data를 반환해야 하는 경우가 존재
@RestContoller
- @RestController는 @Controller와 @ResponseBody가 합쳐진 형태로 JSON 형태의 객체 데이터를 반환
- @ResponseBody가 적용되므로 선언 필요X
- View 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력
- Rest API(HTTP API)를 만들 때 사용하는 컨트롤러
View 반환 과정
- 클라이언트는 URL 형식으로 요청을 보냄
- DispatcherServlet이 요청을 위임할 Handler Mapping을 찾음
- Handler Mapping을 통해 요청을 Controller에 위임
- Controller는 요청을 처리한 후 View Name을 Handler Adapter에게 반환
- Handler Adapter는 다시 Dispatcher Servlet에게 반환
- DispatcherServlet은 View Resolver를 통해 View Name에 해당하는 View를 찾아서 클라이언트에게 반환
Data 반환 과정
- 클라이언트는 URL 형식으로 요청을 보냄
- DispatcherServlet이 요청을 위임할 Handler Mapping을 찾음
- Handler Mapping을 통해 요청을 Controller에 위임
- Controller는 요청을 처리한 후 객체 반환
- 반횐되는 객체는 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 |