Spring 에서 restful 하게 작성하기 위해 @Controller 내에 @ResponseBody 사용하거나 혹은 @RestController 을 사용할 수 있습니다.
스프링 MVC 프레임 워크와 REST
일반적인 Spring MVC 컨트롤러와 RESTful 웹 서비스 컨트롤러의 주요 차이점은 HTTP 응답 바디가 생성되는 방식이다. 일반적인 MVC 컨트롤러는 View 기술을 사용하지만, RESTful 웹 서비스 컨트롤러는 객체를 반환하기 만하면(!) 객체 데이터는 JSON / XML 형식의 HTTP 응답에 직접 작성되게 됩니다.
▲ 일반적인 Spring MVC 흐름
@ResponseBody 와 @RestController 두가지 차이점을 알아보기 전에 우선 스프링에서 REST하게 데이터가 송수신 되는 과정은 다음과 같다.
- 클라이언트에서 웹서비스에 요청을 보냄.
- Handler Mapping과 그 타입을 찾는 Dispatcher Servlet에 의해 요청이 가로채짐.
- 요청은 Controller에 의해 처리되고 응답은 Dispatcher Servlet으로 반환되고 Dispatcher Servlet은 다시 View로 보내게 됩니다.
@RestController
Spring 4.0은 @Controller와 @ResponseBody 을 합쳐놓은것 이상의 역할을 수행하는@RestController를 추가했습니다. 컨트롤러 클래스에 @RestController 어노테이션을 작성함으로써 더 이상 @ResponseBody를 모든 요청 매핑 메소드에 추가 할 필요가 없습니다. @ResponseBody 어노테이션은 이제 기본으로 작동..!
결론
스프링을 restful하게 만들 때, 앞으로는 스프링 4.0 부터 추가된 @RestController을 활용하므로써 기존의 @ResponseBody in @Controller 방식을 벗어나 좀 더 쉽게 restful한 코드를 작성할 수 있습니다.
참조
[Spring] Restful한 스프링 @ResponseBody vs @RestController (tistory.com)
[Spring] Restful한 스프링 @ResponseBody vs @RestController
Spring 에서 restful 하게 작성하기 위해 @Controller 내에 @ResponseBody 사용하거나 혹은 @RestController 을 사용할 수 있습니다. 스프링 MVC 프레임 워크와 REST 일반적인 Spring MVC 컨트롤러와 RESTful 웹 서비스
highcode.tistory.com
'스프링Spring' 카테고리의 다른 글
[Mybatis] 마이바티스 mybatis-config.xml 태그 컨피그 태그 (0) | 2022.12.20 |
---|---|
[스프링]Spring Spring Form Tag 스프링 폼태그 (0) | 2022.12.17 |
[Spring]스프링 DispatcherServlet (0) | 2022.12.12 |
스프링 RequestMapping ( PutMapping, GetMapping 등과 비교하면서 기억하기) (0) | 2022.12.10 |
스프링 @RestController (0) | 2022.12.10 |