Spring MVC Controller
- Spring MVC는 어노테이션 기반 프로그래밍 모델을 제공
- @Controller, @RestController 컴포넌트로 구성
- request mappings, request input, exception handling 등
@RestController
- Spring 4.0에 도입
- @Controller와 @ResponseBody 결합
- 컨트롤러의 리퀘스트 핸들링 메소드에서 @ResponseBody annotation을 쓸 필요가 없음
@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) {
}
}
@Controller
- @Component 클래스의 특수화
- 클래스 경로 스캐닝을 통해, 구현 클래스(@Component)를 자동 감지(auto-detection)
- 보통 @Controller, @RequestMapping annotation을 함께 씀
- 자동으로 반환 객체를 HttpResponse로 직렬화
@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) {
}
}
- @ResponseBody
- HttpEntity, ResponseEntity
- HttpHeaders
- String
- View
- java.util.Map, org.springframework.ui.Model
- @ModelAttribute
- ModelAndView object
- void
- 등등...
출처