본문 바로가기
Spring Framwork

Controller

by orioncsy 2023. 3. 18.

Controller

@controller

View 반환

  • 전통적인 Spring MVC로 view를 반환한다.

과정

  • Client는 URI 형식으로 웹 서비스에 요청
  • DispatcherServlet이 요청을 위임할 handler를 찾기 위해 HandlerMapping에 요청
  • HandlerAdapter를 통해 controller에게 위임
  • Controller는 ViewName을 반환
  • DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 view를 찾아 Client에게 반환

Data 반환

  • 데이터를 반환하기 위해서 @ResponseBody를 사용
  • 이것을 통해 Controller도 Json 형태의 데이터를 반환 가능

과정

  • Client는 URI 형식으로 웹 서비스에 요청
  • DispatcherServlet이 요청을 위임할 handler를 찾기 위해 HandlerMapping에 요청
  • HandlerAdapter를 통해 controller에게 위임
  • Controller는 요청 처리 후 객체를 반환(ResponseEntity라는 객체에 담아 반환)
  • 객체를 반환하기 위해 ViewResolver가 아닌 HttpMessageConverter 동작
    • HandlerAdapter와 controller가 요청을 주고받을 때 메시지컨버터 사용
  • 반환되는 객체는 Json 형태로 직렬화 되어 사용자에게 반환(@ResponseBody를 사용)

@RestController

개념

  • @Controller에서 @ResponseBody가 추가된 것
  • Json 형태의 객체로 데이터를 반환

과정

  • Client는 URI 형식으로 웹 서비스에 요청
  • DispatcherServlet이 요청을 위임할 handler를 찾기 위해 HandlerMapping에 요청
  • HandlerAdapter를 통해 Controller에게 위임
  • Controller는 요청 처리 후 객체를 반환(ResponseEntity라는 객체에 담아 반환)
  • 객체를 반환하기 위해 ViewResolver가 아닌 HttpMessageConverter 동작
    • HandlerAdapter와 controller가 요청을 주고받을 때 메세지컨버터 사용
  • 반환되는 객체는 Json 형태로 직렬화되어 사용자에게 반환(@ResponseBody 필요가 없음)

Reference

https://mangkyu.tistory.com/49

'Spring Framwork' 카테고리의 다른 글

Bean Life Cycle  (0) 2023.03.27
Bean Scope  (0) 2023.03.19
Spring & Spring Boot  (0) 2023.03.17
Filter & Interceptor  (0) 2023.03.16
의존성 주입  (0) 2023.03.11