[Spring] @Controller와 @RestController의 차이점

gwonsang247·2023년 6월 27일
0

Java

목록 보기
1/11
post-thumbnail

@Controller

사용자의 요청이 진입하는 지점을 의미하며,

@Controller 는 주로 사용자의 요청을 처리하고 난 후 정해진 뷰에 객체를 넘겨주는 역할을 한다.

@Controller를 왜 사용하는가

대규모 서비스로 갈수록 처리해야할 서비스들이 많아지는데, 이를 하나의 클래스에서 몰아 처리할 게 아니라 @Controller 어노테이션을 중간 제어자 둠으러써 각 @Controller가 필요한 로직을 처리하기 위한 서비스를 호출하게 된다.

@Controller는 MVC 패턴에 포함되는 것이다.

즉, @Controller의 핵심은 역할분담 이다.

@Controller와 @RestController

Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다.

주요한 차이점은 "HTTP Response Body가 생성되는 방식" 이다.

  • @Controller의 역할 : Model 객체를 만들어 데이터를 포함한 View를 반환.
  • @RestController의 역할 : Model객체를 만들고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답에 담아 전송.

즉, @RestController는 웹 서비스에서 사용되는 특수 컨트롤러이며 @Conroller + @Response와 같다.

0개의 댓글