Open zuminzi opened 1 year ago
@Controller
동작 과정:
@RestController
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
@AliasFor(annotation = Controller.class)
String value() default "";
}
@RestController
는 @Controller
와 @ResponseBody
가 합쳐진 어노테이션이다.
@ResponseBody
의 역할:
동작 과정:
@Controller
반환 동작 과정과 동일하다.@RestController
의 동작 방식은 @Controller
에 @ResponseBody
를 붙인 동작 방식과 완벽하게 동일하다.
@Controller
의 기능 역시 포함되어 있다.@RestController
는 HttpMessageConverter가 반환된 객체를 직렬화하여 HTTP 응답 바디에 담기 때문에 RESTful 웹 서비스를 더욱 쉽게 개발할 수 있도록 도와준다.
문제
이번 강의를 통해 스프링 MVC 패턴에서
@Controller
어노테이션은 컨트롤러 클래스를 컴포넌트 스캔 대상으로 만들고, RequestHandlerMapping의 대상으로 인식하도록 하는 역할을 한다고 학습했다.RESTful 웹 서비스 엔드포인트를 정의하는 데에 주로 사용하는
@RestController
와 일반적인 스프링 MVC컨트롤러를 정의하는@Controller
의 작동 방식의 차이에 대해서 더 탐구하고자 한다.어노테이션
@Controller
와@RestController
의 작동 방식 차이는 무엇인가?관련 섹션