학습용 공간

JAVA Spring 2020.08.31 댓글 개 starmk95

Spring Annotation) @ResponseBody

# @ResponseBody

@ResponseBody 어노테이션은 받은 요청에 대한 결과를 View를 통해 내려주지 않고(View Resolver를 거치지 않음) HTTP의 body에 직접 반환해주도록 한다.

 

위 어노테이션이 없을 경우 요청이 들어오고 이에 해당하는 controller를 찾게 되면, 

그 controller에서 작업이 수행되고 view를 반환한다. 그럼 ViewResolver하는 곳에서 그에 맞는 View를 찾아서 내려준다.

 

그러나 @RespinseBody 어노테이션이 붙은 controller에 맵핑되면 작업 수행 후에 나오는 데이터를 ViewResolver 대신 동작하는 HttpMessageConverter에서 받고 HTTP의 body로 바로 넣어서 내려준다. 

반환 값이 문자열인 경우에는 StringHttpMessageConverter가 작동하고

반환 값이 객체인 경우에는 MappingJackson2HttpMessageConverter기 작동한다.

(Jackson : 객체를 JSON으로 바꾸는 라이브러리)