Controller에서 Model에 데이터를 담아서 JSP 등과 같은 뷰로 전달하는 방식
@Controller의 주용도는 view(화면)을 리턴하는 것이고
@RestController에서는 메서드의 리턴 타입으로 사용자가 정의한 클래스 타입을 사용할 수 있고, 이를 JSON이나 XML로 자동으로 처리할 수 있습니다.
@RestController는 객체를 반환할때 객체 데이터는 바로 JSON/XML 타입의 HTTP 응답을 직접 리턴하게 된다.
Spring 4에서부터는 @Controller 외에 @RestController 어노테이션을 추가해서 @Controller의 모든 메서드의 리턴 타입을 다르게 처리하도록 합니다.
@RestController 이전에는 @Controller + @ResponseBody를 이용해서 사용했습니다. (Spring 3)
Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller -> View -> Dispatcher Servlet -> Response -> Client
Client -> Request -> Dispatcher Servlet -> Handler Mapping -> Controller (ResponseBody) -> Response -> Client
Client -> HTTP Request -> Dispatcher Servlet -> Handler Mapping -> RestController -> HTTP Response -> Client
URL 경로에 있는 값을 파라미터로 추출하려고 할 때 사용
값을 얻을 때에는 int, double과 같은 기본 자료형은 사용할 수 없다.
{ } 로 처리된 부분이 컨트롤러의 메서드에서 변수로 처리가 가능합니다.