티스토리 뷰
Spring - @ResponseBody & ResponseEntity
- @ResponseBody
- Method LEVEL 에 사용한다.
- 해당 Method의 리턴 값을 HttpMessageConverter를 사용하여 응답본문으로 보낸다.
- accpt-header 정보를 참조하여 적절한 MessageConverter를 사용한다.
- JSON 이라면 Jackson2HttpMessageConverter...
- @RestController 를 사용할경우, 모든 Method에 @ResponseBody가 있는것과 동일하기 때문에 생략이 가능하다.
- FileUpload에서 살펴보았던 Handler Method
- multipart/form-data 로 파일업로드 요청시 해당 file의 이름을 응답 본문으로 보내주는 Handler
ResponseEntity
- 응답 헤더의 상태코드와 본문을 직접 다루고 싶은경우 사용한다.
- 자주 사용하는 응답의 경우 static factory method 를 제공한다.
- 이 자체가 응답본문이기 때문에 @ResponseBody 를 한것과 같다.
FileDonwload에서 살펴보았던 Handler Method
- fileName을 Uri Path로부터 받아, 파일 리소스를 읽은뒤 해당 파일 Download 응답을 보내는 Handler
- Header 정보와, 해당 리소스를 응답본문으로 보내준다.
정리
- @ReponseBody를 사용하여 Handler Method의 리턴값을 직접 응답본문으로 보낼수 있다.
- 이때 HttpMessageConverter를 사용하여 적절한 응답으로 변환해서 보내준다.
- accept-header 정보를 참조하여 적절한 MessageConverter를 선택한다.
- 응답헤더와 본문을 직접 다루고 싶다면 ResponseEntity 를 사용하자.
- ResponseEntity자체가 응답 본문이기 때문에 @ResponseBody를 한것과 동일하다.
- REST API 를 만들고싶다면 ResponseEntity를 주로 사용할것이다.
'Spring' 카테고리의 다른 글
Spring - MVC @InitBinder (0) | 2019.08.01 |
---|---|
Spring - MVC @ModelAttribute의 다른사용방법 (0) | 2019.08.01 |
Spring - MVC FileDownload (0) | 2019.07.30 |
Spring - MVC ResourceLoader (0) | 2019.07.30 |
Spring - MVC MultipartFile (0) | 2019.07.29 |
댓글