Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다.
- Controller : 전통적인 Spring MVC의 컨트롤러
- RestContoller : Restful 웹서비스의 컨트롤러
# Controller
- 전통적인 Spring MVC의 컨트롤러
- 주로 view를 반환하기 위해 사용
- Client -> Dispatcher Servlet -> Handler Mapper -> Controller -> View Resolver -> View -> Client
-
- Client : URI 형식으로 웹 서비스 요청
- DispatcherServlet이 요청을 intercept -> Handler Mapping을 통해 요청에 맞는 Controller 호출
- 요청을 처리한 Controller가 응답을 DispatcherServlet에 반환 -> DispatcherServlet은 응답에 해당하는 View를 Client에게 반환
( @Controller에서 View를 반환하기 위해서는 ViewResolver가 사용되며, ViewResolver에서 설정에 맞는 View를 찾아 렌더링 )
- @Controller가 Data를 반환하는 경우 @ResponseBody 어노테이션을 활용 -> Json 형태로 데이터를 반환
- 이러한 형태로 사용하게 된다면, 모든 메서드에 @ResponseBody Annotation을 넣어줘야 하는 번거로움 존재
이러한 형태로 사용하게 된다면, 모든 메서드에 @ResponseBody Annotation을 넣어줘야 하는 번거로움 존재
# RestController
- @RestController = @Controller + @ResponseBody
- 주용도는 Json 형태로 객체 데이터를 반환하는 것 위의 @Controller가 Data를 반환하는 경우와 같은 케이스를 커버한다고 생각하면 된다.
- 정리하면, Controller에서 view를 반환하는 케이스 이외에 json data를 반환해야 되는 케이스에 @Controller + @ResponseBody를 함께 쓰는 번거로움을 해결하기 위해서 @RestController 탄생
**Json : 자바스크립트 객체
'Language > Java' 카테고리의 다른 글
JVM 과 자바메모리 (5) | 2025.07.30 |
---|---|
생성자에 대해.. (2) | 2025.07.29 |
length()메소드에 대해.. (0) | 2023.07.14 |
삼항연산자 (0) | 2023.07.14 |
ArrayList (0) | 2023.07.14 |