@Controller, @RestController

corncheese·2023년 12월 5일
0

Spring

목록 보기
8/8

본 포스팅은 작성자의 학습 목적으로 작성되었으며,
https://mangkyu.tistory.com/72 참고하여 작성되었습니다 :)

@Controller

전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용한다.

- Controller로 View 반환하기

과정
1. Client는 URI형식으로 웹 서비스에 요청을 보낸다.
2. DispatcherServlet이 요청할 처리 대상을 찾는다.
3. HandlerAdapter를 통해 요청을 Contoller로 위임한다.
4. Controller는 요청을 처리한 후에 ViewName을 반환한다.
5. DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 사용자에게 반환한다.

- Controller로 Data 반환하기

컨트롤러로 데이터를 반환하려면 @ResponseBody 어노테이션을 활용 / ResponseEntity 사용해야 한다. 이를 통해 Controller로 Json형태로 데이터를 반환 할 수 있다.

과정
1. Client는 URI형식으로 웹 서비스에 요청을 보낸다.
2. DispatcherServlet이 요청할 처리 대상을 찾는다.
3. HandlerAdapter를 통해 요청을 Contoller로 위임한다.
4. Controller는 요청을 처리한 후에 객체을 반환한다. (HttpMessageConverter 로 처리)
5. 반환되는 객체는 Json으로 Serialize되어 사용자에게 반환된다.

@RestContoller

@RestContoller는 @Controller에 @ResponseBody가 추가된 것이다. Rescontroller의 주 용도는 Json형태로 객체를 반환하는 것!
동작 과정 역시 @Controller에 @ResponseBody를 붙인 것과 동일하다.

0개의 댓글