티스토리 뷰

Spring

Spring - MVC @ResponseBody_ResponseEntity

엔꾸꾸 2019. 7. 31. 21:32

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함