- 주요한 차이점 : HTTP Response Body가 생성되는 방식
@Controller
- 전통적인 Spring MVC의 컨트롤러
- View 기술사용
- @ResponseBody를 사용하면 View를 리턴하지 않고 Controller에서 직접 데이터 리턴 가능
Spring4.0부터 @RestController를 통해 더 단순화 되었다.
@RestController
- Restful 웹서비스의 컨트롤러
- 반환 되는 객체 데이터 타입 : JSON/XML 타입의 HTTP 응답을 직접 리턴
@Controller의 실행 흐름
Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller -> View -> Dispatcher Servlet -> Response -> Client
@ResponseBody의 실행 흐름
Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller (ResponseBody) -> Response -> Client
@RestController의 실행 흐름
Client -> HTTP Request -> Dispatcher Servlet -> Handler Mapping -> RestController (자동 ResponseBody 추가) -> HTTP Response -> Client
'Spring Framework > 끄적끄적' 카테고리의 다른 글
[Spring] 스프링 어노테이션 정리 (1) | 2021.03.09 |
---|---|
[Spring] 스프링 @RequestParam과 @PathVariable (0) | 2021.03.09 |
[Spring] @RequestMapping 속성 (1) | 2021.03.06 |
[Spring] @RequestBody, @ReponseBody 어노테이션 (0) | 2021.03.05 |
[Spring] RestAPI 란? (7) | 2021.02.17 |