-
핸들러 메소드 16부 - @ResponseBody & ResponseEntitySPRING/스프링 MVC 2021. 7. 10. 23:43
@ResponseBody
- 데이터를 HttpMessageConverter를 사용해 응답 본문 메시지로 보낼 때 사용한다.
- @RestController 사용시 자동으로 모든 핸들러 메소드에 적용 된다.
ResponseEntity
- 응답 헤더 상태 코드 본문을 직접 다루고 싶은 경우에 사용한다.
@RestController @RequestMapping("/api/events") public class EventApi { @PostMapping @ResponseBody public Event createEvent(@RequestBody @Valid Event event, BindingResult bindingResult) { // save event // Binding 에러 있을 시에 Sys.out 으로 출력 if(bindingResult.hasErrors()) { bindingResult.getAllErrors().forEach(error->{ System.out.println(error); }); } return event; } }
@RestController가 @Controller + @ResponseBody 개념이기 때문에 @RestController에서는 @ResponseBody 생략이 가능하다.
@RestController @RequestMapping("/api/events") public class EventApi { @PostMapping public ResponseEntity<Event> createEvent(@RequestBody @Valid Event event, BindingResult bindingResult) { // save event // Binding 에러 있을 시에 Sys.out 으로 출력 if(bindingResult.hasErrors()) { bindingResult.getAllErrors().forEach(error->{ System.out.println(error); }); return ResponseEntity.badRequest().build(); } return ResponseEntity.ok(event); } }
@ResponseEntity를 사용하면 헤더, 본문 상태 정보를 모두 다를 수 있다.
'SPRING > 스프링 MVC' 카테고리의 다른 글
DataBinder: @InitBinder (0) 2021.07.11 모델: @ModelAttribute 또 다른 사용법 (0) 2021.07.11 핸들러 메소드 15부: @RequestBody & HttpEntity (0) 2021.07.10 핸들러 메소드 14부 ResponseEntity 예제:) 다운로드 (0) 2021.07.10 핸들러 메소드 13부: MultipartFile (0) 2021.07.09