@Controller / @RestController

Kim Dong Kyun·2022년 12월 17일
1

Today I learned

목록 보기
18/43

들어가기 앞서

Spring 레이어드 아키텍쳐 개요


1. 스프링에서 Controller의 역할

  • Presentation에 있는 스프링 MVC 컨트롤러의 한 부분. 주로 사용자에게 View를 제공하기 위해서 사용된다.
  • 주로 View를 반환하지만, 데이터를 반환해야 하는 경우도 있다. 이럴 경우 @ResponseBody 어노테이션을 사용해서 Json 형태로 데이터를 반환 가능하다.

위는 내가 실습한 myselectshop 프로젝트의 샵컨트롤러 부분이다. 컨트롤러 어노테이션이 붙어있는데, getUserInfo 부분은 view, 즉 html 특정 페이지를 반환한다.

반면 위와 같은 경우에는 userName이라는 데이터를 반환하기 위하여 ResponseBody를 사용한 모습이다.

IntelliJ 라이브러리에서 검색한 Controller. @Component를 포함한다(빈으로 등록된다) 더하여 @RequestMapping을 포함하므로 View를 반환 가능하다.


2. @RestController?

라이브러리에서 검색한 바는 다음과 같다. @Controller, @ResponseBody가 결합되어 있는 모습이다.

즉, 데이터를 반환하는 컨트롤러의 경우에는 @RestController 어노테이션을 사용해야 한다.(혹은 그게 편하다.)

3. 결론

  • View를 반환하기 위해서는 @Controller

  • Data를 반환하기 위해서는 @RestController

  • 실제로는 @ResponseBody를 이용해서 데이터만 송신하는 @RestController 부분과, View만 반환하기 위해 @RequestMapping만 사용하는 @Controller 부분을 따로 분리해서 사용한다.

0개의 댓글