728x90
요약
Spring MVC의 @RestController은 @Controller와 @ResponseBody의 조합
(@Controller + @ResponseBody = @RestController)
@Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 찾는 것.
@RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답에 담아서 전송.
차이
1.
@Controller는 클래스를 Spring MVC 컨트롤러로 표시하는데 사용
@RestController는 RESTful 웹 서비스에서 사용되는 특수 컨트롤러이며 @Controller + @ResponseBody와 동일
// 아래 두 코드는 동일한 동작
// @Controller 사용
@Controller
@ResponseBody
public class MVCController{
logic...
}
// @RestController 사용
@RestController
public class ReftFulController{
logic...
}
2. @RestController는 Spring4.0에서 추가되었지만,
@Controller는 Spring이 주석을 지원하기 시작한 이후에 존재하며 공식적으로 Spring 2.5버전에서 추가
3. @Controller는 @Component 주석이 달려있고,
@RestController는 @Controller와 @ResponseBody 주석이 달린 편의 컨트롤러
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
}
@Target(value=TYEP)
@Retention(value=RUNTIME)
@Documented
@Component
public @interface Controller{
}
4. @RestController을 표시하면 모든 메소드가 뷰 대신 객체로 작성
참고
'공부 > Spring' 카테고리의 다른 글
[Spring] IoC, DI, 컨테이너 (2) | 2023.10.04 |
---|---|
[Spring] SOLID원칙(코드 예시) (0) | 2023.09.27 |
@CrossOrigin Annotation (0) | 2023.08.14 |
List to Page 변환 (0) | 2023.08.14 |
spring프로젝트 생성 (0) | 2023.07.10 |