Spring

[Spring] Controller 와 RestContoller 의 차이

코딩로봇 2025. 4. 10. 14:19

Controller 와 RestContoller 의 차이

  • Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다.
  • 전통적인 Spring MVC 컨트롤러인 @Controller와 RESTful 웹 서비스의 컨트롤러인 @RestController의 주요한 차이점은 HTTP Response Body가 생성되는 방식에 있다. -> 즉, 모든 메소드가 뷰 대신 객체로 작성된다.

 

♐ @Controller

  • Controller는 주로 View를 반환하기 위해 사용한다.. 아래와 같은 과정을 통해 Spring MVC Container는 Client의 요청으로부터 View를 반환한다.

 

  • Controller 주석코드
@Target(value=TYEP)@Retention(value=RUNTIME)
@Documented
@Componentpublic
@interface Controller

 

♐ @RestController

  • RestController는 Spring MVC Controller에 @ResponseBody가 추가된 것이다. 이로써 당연한 것은RestController의 주용도는 JSON 형태로 객체 데이터를 반환하는 것이다

1. Client는 URI 형식으로 웹 서비스에 요청을 보낸다.

2. Mapping되는 Handler와 그 Type을 찾는 DispatcherServlet이 요청을 인터셉트한다.

3. RestController는 해당 요청을 처리하고 데이터를 반환한다.

 

 

  • RestController 주석코드(Controller + ResponseBody)
@Target(value=TYEP)
@Retention(value=RUNTIME
)@Documented
@Controller
@ResponseBody
public @interface RestController