스프링을 사용할 때 스프링 MVC 흐름에 따라 코딩하는데 @Controller를 사용할 때도 있고 @RestController를 사용할 때가 있습니다. 이번 포스팅에서는 언제 @Controller를 사용하고 @RestController를 사용하는지 스프링 MVC 흐름과 함께 알아보겠습니다.
@Controller
Spring MVC의 컨트롤러는 View를 반환하기 위해 사용합니다. Client의 요청을 받아 View를 반환합니다. Spring MVC의 흐름은 아래와 같습니다:
- Client는 URI 형식으로 웹 서비스에 요청
- DispatcherServlet은 HandlerMapping에 요청 위임
- HandlerMapping을 통해 요청을 Controller로 위임
- Controller는 요청을 처리한 후에 ViewName을 반환
- DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 클라이언트에게 반환
View를 반환하기 때문에 데이터를 보낼 때는 @RequestBody 어노테이션을 붙여서 Json 형태로 반환해줍니다.
@RestController
- @Controller에 @ResponseBody가 추가된 어노테이션입니다.
- Json 형태로 객체 데이터를 반환합니다.
- @RequestBody를 사용할 필요가 없습니다.
- REST API 를 개발할 때 주로 사용합니다.
데이터 형식으로 보내는지 반환할 view가 있는지 등을 생각해서 @RestController를 쓸지 @Controller를 사용할 지 선택하고 필요에 따라 @RequestBody를 붙여주면 되겠습니다.
'Things to know' 카테고리의 다른 글
ModifiedAt CreatedAt 이 null 값으로 나올 때 오류 해결 @EnableJpaAuditing (0) | 2022.12.13 |
---|---|
분기처리 분기문 뜻 Java (0) | 2022.12.10 |
Spring boot Jakarta Bean Validation Constraints 사용하는 법 @Size @Pattern (0) | 2022.12.06 |
쿠키와 세션 특징과 차이 (0) | 2022.12.03 |
Mac 맥 사용중인 포트 찾아서 kill 죽이기 port already in use 해결 (0) | 2022.12.02 |