@Target(value=TYEP) @Retention(value=RUNTIME) @Documented @Component public @interface Controller
@Target(value=TYEP) @Retention(value=RUNTIME) @Documented @Controller @ResponseBody public @interface RestController
@Controller
+ @ResponseBody
의 동작을 조합한 형태 (같은 방식으로 작동함)@RestController
public class RestfulController {
...
}
@Controller
@ResponseBody
public class SpringMvcController {
...
}
@ResponseBody
를 적용시킬수도 있다. (단, 클래스에는 @Controller
어노테이션)@GetMapping("/api/hello")
@ResponseBody
public String apiHello() {
return "Spring is comming...";
}
이미지 출처 : www.facebook.com/photo/?fbid=1873079892846068&set=gm.3389524044492534
@Controller
는 주로 View를 반환하기 위해 사용Spring MVC Container
는 Client의 요청으로부터 View 반환View Resolver
가 사용되며, View Resolver
설정에 맞게 View를 찾아 렌더링 @ResponseBody
어노테이션을 쓰게 된다.
https://mangkyu.tistory.com/49
@ResponseBody
를 사용하여 Client에게 JSON 형태로 데이터를 반환
https://mangkyu.tistory.com/49
@RestController
를 사용하여 Client에게 JSON 형태로 데이터를 반환