@Controller
주로 MVC에서 View를 반환할 때 사용한다.
ResponseBody 어노테이션을 통해 HTTP Response Body에 데이터를 담아 사용할 수도 있다. (이렇게 사용할 경우 View를 리턴하지 않고 Controller에서 직접 데이터 리턴이 가능하다)
Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller -> View -> Dispatcher Servlet -> Response -> Client
@ResponseBody
자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트에게 전송할 때 사용한다.
Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller(ResponseBody) -> Response -> Client
@RestController
RESTful 웹 서비스에서 사용하는 특수 컨트롤러이다.
@Controller + @ResponseBody
Json/XML 형태의 객체 데이터를 직접 리턴한다.
Client -> HTTP Request -> Dispatcher Servlet -> Handler Mapping -> RestController -> HTTP Response -> Client
reference
- Spring Boot 구조 정리
https://devham76.github.io/spring/Spring-controllerRestController/
- [Spring] @Controller와 @RestController 차이
'Programming > Spring' 카테고리의 다른 글
[Spring Boot] Spring Security를 이용한 로그인, 로그아웃, 회원가입 구현과 thymeleaf 연동하기 (0) | 2021.12.30 |
---|---|
[Spring] RestTemplate (0) | 2021.12.29 |
[Spring] Spring Data JPA (0) | 2021.12.28 |