전통적인 Spring MVC 컨트롤러와 주요 차이점은 HTTP Response Body가 생성되는 방식입니다. 기존의 MVC 컨트롤러는 view기술을 사용하지만 Restful 웹서비스 컨트롤러(@RestController)는 객체를 반환하는 것이 주목적입니다. 객체 데이터는 JSON/XML 형식의 HTTP응답을 직접 작성하게 됩니다. @Controller + @ResponseBody를 합친 것이 @RestController라고 생각하면 됩니다.
Spring MVC Rest의 Work Flow
- 클라이언트는 URI 형식으로 웹서비스에 요청을 보낸다.
- 요청은 Handler Mapping과 그 타입을 찾는 DispatcherServlet에 의해 인터셉트
- 요청은 Controller에 의해 처리되고 응답은 @ResponseBody 어노테이션을 사용하여 View를 리턴하지 않고, 컨트롤러에서 직접 데이터를 리턴. Spring 4.x부터 @RestController 어노테이션을 통해 심플하게 작업을 수행할 수 있게 됨.
@RestController - Spring 4.x MVC Restful Web Service Work Flow
Spring 4.x에서는 @RestController 어노테이션이 추가되어 컨트롤러 클래스의 각 메서드마다 @ResponseBody를 추가할 필요가 없어졌고, 모든 메서드는 @ResponseBody 어노테이션이 기본으로 작동됩니다.
현재 FrontEnd/BackEnd를 분리하여 개발중인 환경에서 가장 많이 사용하고 있는 restful API 방식으로 개발할 때 스프링의 Controller에 @RestController 어노테이션을 사용하는 것으로 간단하게 restful 스타일의 api를 생산할 수 있습니다.
'나는개발자다!! > 자바 Spring' 카테고리의 다른 글
JSTL foreach 문에서의 상태값 썰 (0) | 2018.10.16 |
---|---|
Java 프로젝트에 Sqlite 설정 썰~! (0) | 2018.10.14 |
자바 유료화? 제대로 풀어보자 썰 (0) | 2018.10.14 |
이클립스 최적화 썰 (0) | 2014.07.31 |
자바의 여러가지 에러 (1) | 2014.07.30 |