우당탕탕 개발일지

[Spring] @Controller 와 @RestController 차이 본문

Spring

[Spring] @Controller 와 @RestController 차이

kyungeeee 2022. 11. 16. 22:31

👇 일반적으로 컨트롤러는 아래와 같은 과정을 통해 클라이언트의 요청을 View로 반환하여준다.

출처 : www.facebook.com/photo/?fbid=1873079892846068&set=gm.3389524044492534

 

📚 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 {
}