본문 바로가기
Spring (Boot)

API (@ResponseBody)

by taehee.kim.dev 2020. 11. 17.

@RestController = @ResponseBody + @Controller

@ResponseBody를 사용하면 viewResolver를 사용하지 않음.

일반 컨트롤러(뷰 템플릿 엔진 처리 방식 or 정적 컨텐츠 반환 방식)가 아니기 때문.

대신에, HttpMessageConverter가 작동.

HttpMessageConverter

  • String 처리 : StringHttpMessageConverter
  • 객체 -> JSON 처리 : MappingJackson2HttpMessageConverter
  • byte 처리 등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음.

 

★ 클라이언트의 HTTP Accept header와 서버의 컨트롤러 반환 타입 정보를 조합해서

적절한 HttpMessageConverter가 선택된다.

 

@ResponseBody가 적용된 컨트롤러 함수에서 반환하는 String은

그대로 HTTP의 Body부분에 모두 포함되어 반환된다.

 

@ResponseBody를 사용하고, String이 아닌 객체를 반환하면,

객체가 JSON형태({필드명:필드값})로 변환되어 반환됨.

 

'Spring (Boot)' 카테고리의 다른 글

DI, IOC란?  (0) 2020.11.20
AOP란?  (0) 2020.11.20
@RequestParam  (0) 2020.11.17
Spring Boot 정적(static) 컨텐츠 처리 방식  (0) 2020.11.17
Spring Boot viewResolver (template engine 방식)  (0) 2020.11.17

댓글