@RestController 와 @Controller의 차이

hgh1472·2024년 1월 20일

스프링

목록 보기
1/8

간단하게 설명하면 @RestController@Controller@ResponseBody가 합쳐진 것이다.
Spring 프레임워크에서 RESTful API를 쉽게 사용할 수 있도록 제공한다.

@Controller는 Model 객체를 만들어 데이터를 담고 View를 찾는다.
따라서 @Controller는 반환 값이 String이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 랜더링된다.
하지만, @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 형식으로 HTTP 응답에 담아서 전송한다. 반환 값으로 뷰를 찾는 것이 아니라, HTTP 메시지 바디에 바로 입력한다. 이름 그대로 Rest API(HTTP API)를 만들 때 사용하는 컨트롤러이다. 물론 @Controller@ResponseBody를 사용하여 만들 수도 있다.

@Controller는 뷰에 표시될 데이터가 있는 Model 객체를 만들고 그에 맞는 뷰를 선택하는 일을 담당한다. 또한, @ResponseBody를 사용해 HTTP 응답 바디에 데이터를 담아 요청을 완료할 수 있다.

참고

https://dncjf64.tistory.com/288

0개의 댓글