위는 내가 실습한 myselectshop 프로젝트의 샵컨트롤러 부분이다. 컨트롤러 어노테이션이 붙어있는데, getUserInfo 부분은 view, 즉 html 특정 페이지를 반환한다.
반면 위와 같은 경우에는 userName이라는 데이터를 반환하기 위하여 ResponseBody를 사용한 모습이다.
IntelliJ 라이브러리에서 검색한 Controller. @Component를 포함한다(빈으로 등록된다) 더하여 @RequestMapping을 포함하므로 View를 반환 가능하다.
라이브러리에서 검색한 바는 다음과 같다. @Controller, @ResponseBody가 결합되어 있는 모습이다.
즉, 데이터를 반환하는 컨트롤러의 경우에는 @RestController 어노테이션을 사용해야 한다.(혹은 그게 편하다.)
View를 반환하기 위해서는 @Controller
Data를 반환하기 위해서는 @RestController
실제로는 @ResponseBody를 이용해서 데이터만 송신하는 @RestController 부분과, View만 반환하기 위해 @RequestMapping만 사용하는 @Controller 부분을 따로 분리해서 사용한다.