본문 바로가기
BackEnd/Spring

[SPRING] @RequestBody / @ResponseBody / Jackson2HttpMessageConverter

by 성은2 2022. 10. 26.

비동기통신을 하기위해서는 클라이언트에서 서버로 요청 메세지를 보낼 때, 본문(body)에 데이터를 담아서 보내야 하고, 서버에서 클라이언트로 응답을 보낼때에도 본문(body)에 데이터를 담아서 보내야 한다. 

 

즉, 요청본문 requestBody, 응답본문 responseBody 을 담아서 보냄으로 비동기 통신하게 된다.

 

 

@RequestBody 어노테이션과 @ResponseBody 어노테이션이 각각 HTTP요청 body를 자바객체로 변환하고,

자바객체를 다시 HTTP 응답 body로 변환해준다.

 

 

@RequestBody 

클라이언트에서 서버로 필요한 데이터를 요청하기 위해 JSON 데이터를 요청 본문에 담아서 서버로 보내면, 서버에서는 @RequestBody 어노테이션을 사용하여 HTTP 요청 본문에 담긴 값들을 자바객체로 변환시켜, 객체에 저장한다.

JSON ---> Java Object로 변환

 

@ResponseBody 

서버에서 클라이언트로 응답 데이터를 전송하기 위해 @ResponseBody 어노테이션을 사용하여 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송한다. 

Java Object  ---> JSON

 

 

Jackson2HttpMessageConverter

Spring 에서 JSON 형변환을 담당하는 것이 Jackson2HttpMessageConverter입니다.
즉, @RequestBody로 JSON 데이터가 넘어오면 이 JSON을 Java Object로 변환은 Jackson2HttpMessageConverter 에서 해줍니다.

 

 

공식문서에서 확인할 수 있다.

https://www.baeldung.com/spring-httpmessageconverter-rest

 

 

 

출처: https://cheershennah.tistory.com/179 [Today I Learned. @cheers_hena 치얼스헤나:티스토리]