728x90
반응형
들어가기 전에
@Controller는 전통적인 Spring controller로써 오래 사용되어졌습니다. Spring 4.0에서는 @RestController라는 좀 더 RESTful한 웹서비스를 간단히 만들 수 있는 어노테이션이 소개되었습니다. 이번 포스팅을 통해 간단히 두 가지 어노테이션의 차이를 살펴보겠습니다.
Spring MVC @Controller

@Controller 어노테이션은 @Component 어노테이션을 가지고 있어 classpath 스캔을 통해 자동으로 구현체를 감지할 수 있습니다. 일반적으로 @Controller는 @RequestMapping 어노테이션과 함께 많이 쓰입니다.
@Controller
@RequestMapping("books")
public class SimpleBookController {
@GetMapping("/{id}", produces = "application/json")
public @ResponseBody Book getBook(@PathVariable int id) {
return findBookById(id);
}
private Book findBookById(int id) {
// ...
}
}
- 위 소스코드를 보면, request의 응답에
@ResponseBody어노테이션을 함께 붙여놓은 것을 볼 수 있습니다.@ResponseBody어노테이션을 사용하면, 자동으로 응답 객체를HttpResponse로 직렬화가 가능합니다.
Spring MVC @RestController

@RestController는 @Controller와 @ResponseBody를 포함한 어노테이션으로 아래와 같이 사용됩니다.
@RestController
@RequestMapping("books-rest")
public class SimpleBookRestController {
@GetMapping("/{id}", produces = "application/json")
public Book getBook(@PathVariable int id) {
return findBookById(id);
}
private Book findBookById(int id) {
// ...
}
}
- 이미
@RestController내에@ResponseBody가 포함되어 있기 때문에 각 요청의 응답에@ResponseBody를 붙여주지 않아도 자동으로 응답 객체를HttpResponse로 직렬화가 됩니다.
참고 자료
728x90
반응형
'FRAMEWORK > Spring' 카테고리의 다른 글
| [Spring] POJO 알아보기 (0) | 2025.12.28 |
|---|---|
| [SpringBoot] spring 관련 application.yml 설정 (0) | 2025.12.28 |
| [SpringBoot] SpringBoot를 이용한 email 전송하기(첨부파일 포함) (0) | 2021.12.20 |
| [SpringBoot 2.5↑] 빌드 시 2가지 jar가 생성되는 현상 (executable jar & plain jar) (4) | 2021.12.13 |
| [SpringBoot] SpringBoot를 이용한 AWS S3에 resizing 이미지 업로드하기(Marvin 활용) (1) | 2021.12.04 |