OverView
Controller란?
- MVC 패턴에서 사용되는 방식으로, 클라이언트에서 들어온 요청을 처리(실제 처리는 Service(Layered Architecture에서 담당))하여 결과를 반환해 줌
@Controller
- 클라이언트 요청으로부터 처리 후 View를 반환
- ViewResolver가 실행되어 View를 찾고, Rendering 함
- View가 아닌 데이터를 직접 반환하려는 경우, @ResponseBody 어노테이션 사용
- @ResponseBody를 사용하면, View가 반환되지 않고 HTTP 메시지 바디에 데이터를 직접 입력하여 객체 데이터를 반환 함
- viewResolver 대신에 HttpMessageConverter 가 동작 함
@RestController
- @Controller + @ResponseBody 형태
- 클라이언트 요청으로부터 객체 데이터를 반환
- 컨트롤러에 @RestController를 사용하면, 컨트롤러 내에 모든 메소드는 @ResponseBody가 적용 됨
- @RestController가 선언된 클래스 안에서 특정 메소드에서 View를 반환해야 한다면,
ModelAndView를 사용하면 됨
동작 방식 및 원리는 아래 링크 참조
참고 출처