초기에는 Spring이 프론트와 백엔드의 역할을 같이하고 있었다.
그래서 @Controller는 화면에 보여주는 View를 반환하는 기능을 가지고 있었다.
그렇지만 Data만 반환을 해야하는 경우가 점차 많이 생기게 되었다.
(RestApi 서버인경우, 화면의 특정 부분만 렌더링 할 경우 등이 있다.)
이럴때는 데이터를 반환하기 위해 @ResponseBody를 이용하여 Json 형태로 데이터를 반환한다.
그런데 계속해서 @ResponseBody를 붙이는 것에 대한 불편함이 생겼고 이에따라 이걸 합친 기능이 만들어지게 된다. 이것이 바로 @RestController이다.(Spring 4버전 이후로 출시되었다고 한다.)
즉 @RestController = @Controller + @ResponseBody가 되는 것이다.
Json으로의 변환은 Message Converter가 도와준다.
기본적으로 반환이 Json이기 때문에 반환타입을 지정하는 produces에 `application/json` 설정을 추가하지 않아도 된다. (무지성으로 넣으면서 했다가 넣을 이유가 있냐는 피드백을 받았다. ㅜㅠ)
출처 : https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-controller
https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-ann-responsebody
'프레임워크 > Spring' 카테고리의 다른 글
[Spring] Header에서 데이터 가져오기 @RequestHeader (0) | 2021.04.23 |
---|---|
[Spring] Parameter에서 데이터 가져오기 @RequestParam (0) | 2021.04.22 |
[Spring] consumes와 produces의 차이 (1) | 2021.04.21 |
[Spring] URI patterns는 무엇인가? (0) | 2021.04.20 |
[Spring] @RequestMapping이란? (0) | 2021.04.08 |
댓글