본문 바로가기

나는개발자다!!/자바 Spring

RestController 사용법 썰

전통적인 Spring MVC 컨트롤러와 주요 차이점은 HTTP Response Body가 생성되는 방식입니다. 기존의 MVC 컨트롤러는 view기술을 사용하지만 Restful 웹서비스 컨트롤러(@RestController)는 객체를 반환하는 것이 주목적입니다. 객체 데이터는 JSON/XML 형식의 HTTP응답을 직접 작성하게 됩니다. @Controller + @ResponseBody를 합친 것이 @RestController라고 생각하면 됩니다.

Spring MVC Rest의 Work Flow

  1. 클라이언트는 URI 형식으로 웹서비스에 요청을 보낸다.
  2. 요청은 Handler Mapping과 그 타입을 찾는 DispatcherServlet에 의해 인터셉트
  3. 요청은 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를 생산할 수 있습니다.