@Controller vs @RestController
Spring MVC 컨트롤러와 Restful 웹서비스 컨트롤러의 차이점은 "HTTP Response Body가 생성되는 방식"이다.
Spring 4.0 이상 버전은 @Controller와 @ResponseBody 어노테이션을 추가하는 것 대신 @RestController을 제공한다.
@RestController 어노테이션을 살펴보면, @Controller와 @ResponseBody 어노테이션이 있는 걸 확인할 수 있다.
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
/**
* The value may indicate a suggestion for a logical component name,
* to be turned into a Spring bean in case of an autodetected component.
* @return the suggested component name, if any (or empty String otherwise)
* @since 4.0.1
*/
@AliasFor(annotation = Controller.class)
String value() default "";
}
@Controller는 일반적으로 View Page 이름을 리턴해주어 사용자에게 뷰페이지를 출력할 때 사용한다.
@RestController는 View를 리턴하지 않고 컨트롤러에서 직접 데이터 리턴(HTTP Response Body 직접 작성)할 때 사용한다.
참고
doublesprogramming.tistory.com/105
https://goddaehee.tistory.com/203
728x90
반응형
'개발 > Spring' 카테고리의 다른 글
@PostMapping, @PutMapping, @GetMapping (0) | 2021.03.15 |
---|---|
[springboot] 스프링부트에서 실행된 쿼리 로그를 통해 확인하기 (0) | 2021.03.12 |