Programming/Spring
[Spring] @Controller vs @RestController
OriginMaster
2021. 10. 25. 23:26
반응형
@Controller
전통적인 Spring MVC의 컨트롤러. 주로 View를 반환하기 위해 사용된다.
1. 클라이언트가 서버에 웹서비스를 요청.
2. Dispatcher Servlet에서 받아서 Handler Mapping된 값을 Controller에게 넘겨주고, Controller에서 요청 처리.
3. 처리된 응답을 다시 Dispatcher Servlet으로 반환하고 Dispatcher Servlet은 View를 클라이언트에게 반환.
@RestController
컨트롤러에서 데이터를 반환해야 하는 경우 사용되는 Restful한 웹서비스 컨트롤러.
기존 Controller에서는 @ResponseBody를 사용하면 Data값을 반환해 줄 수 있지만, 해당 컨트롤러가 데이터만 반환하는 경우 사용된다.
1. 클라이언트가 서버에 웹서비스를 요청.
2. Dispatcher Servlet에서 받아서 Handler Mapping된 값을 RestController에게 넘겨주고, RestController에서 요청 처리.
(2번까지는 기존 컨트롤러와 동일)
3. RestController가 요청을 처리하고 데이터를 반환.
RestController의 가장 큰 장점은 데이터 처리하는 로직이 단순하여 서버-클라이언트 간 빠른 통신이 가능하다.
반응형