Spring
[Spring] @Controller 와 @RestController 차이
kyungeeee
2022. 11. 16. 22:31
👇 일반적으로 컨트롤러는 아래와 같은 과정을 통해 클라이언트의 요청을 View로 반환하여준다.
📚 spring에서 컨트롤러를 지정해주는 어노테이션은 @Controller와 @RestController 가 있다.
📌 @Controller 란?
- 주로 View를 반환하기 위해 사용한다.
👉 Model 객체를 만들어 데이터를 담아 View를 반환한다. - @Controller에서 데이터를 반환하기 위해선 @ResponseBody 어노테이션을 함께 사용해야한다.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@ResponseBody
public class ArticleRestController {
}
📌 @RestController 란?
- RESTful 웹 서비스에서 사용되는 특수 컨트롤러로 @Controller + @Response와 동일하다고 볼 수 있다.
- @Controller와 다르게 View를 반환하는 것이 아닌 객체데이터를 반환한다.
- 데이터 형식은 JSON 또는 XML형식으로 HTTP 응답에 담아 전송한다.
- 모든 메서드가 View 대신 객체로 작성이 되어진다.
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ArticleRestController {
}