Spring - @ResponseBody 사용원리

클라이언트에서 localhost:8080/hi-spring  url로 요청이 들어왔다고 치자

 

그럼 톰켓서버에서 해당 url 요청이 들어왔다고 Spring Container에다가 던져준다.

 

스프링컨테이너에 있는 Controller에서 매핑되는게 있는데 그 매핑되는 녀석이

@ResponseBody라는 어노테이션이 안붙어있을때는 ViewResolver에게 던져서 템플릿엔진으로 처리하게 되는데

@ResponseBody 어노테이션이 붙어있으면 데이터 그대로 내려주게된다.

 

만약 String 문자를 내려주면 그대로 내려주는데 만약 객체를 내려주면 json방식으로 내려주게된다.

 

그래서 @ResponseBody 어노테이션이 붙엇을때 HttpMessageConverter라는 녀석이 동작한다.

즉 객체를 내려주는 경우에는 HttpMessageConverter라는 녀석안에 있는

MappingJackson2HttpMessageConverter가 동작하고

그냥 문자를 내려주는 경우에는 StringHttpMessageConverter가 동작하는 것이다.

객체를 json으로 바꿔주는 유명한 라이브러리들이 존재하는데 유명한 2개 라이브러리는 다음과 같다.

Jackson

Gson