반응형

- 스프링에서 @ResoponseBody를 사용할 때

viewResolver 대신 HttpMessageConverter가 동작

 

HttpMessageConverter 인터페이스

- HTTP 요청, 응답 둘 다 사용

- byteArray, String, JSON 객체

- canRead(), canWrite() : 메시지 컨버터가 해당 클래스, 미디어타입(content-type, accept 미디어 타입)을 지원하는지 체크

- read(), write()  : 메시지 읽고 쓰기

- 우선 순위에 따라 쓰이는 convert가 다르다.

 


 

Dispatcher Servlet - RequestMapping 핸들러 어댑터

 

🚩HttpMessageConverter 있는 곳

- HandlerMerthodArgumentResolver (파라미터 처리)

- HandlerMerthodReturnValueHandler (응답 값을 반환, 처리)

 

*  인터페이스로 제공하니 WebMvcConfigurer로 확장할 수 있으나 실제로 할 일은 많지는 않다.

 


생각보다 깊은 곳까지 설명을 해주셨다. 완벽하게 이해하지는 않았지만

포괄적으로 HttpMessageConverter가 우선순위에 의해서 맞는 converter가 쓰이고 

Dispatcher Servlet - RequestMapping 핸들러 어댑터에서 request, response할 때 HttpMessageConverter가 쓰인다는 점. 

 

1년 전까지만 해도 Dispatcher Servlet을 알고나서 머리를 탁 쳤었는데 마감이 급한 일만 처리하다보니..기억에서 많이 사라졌다. 공부의 필요성을 새삼 느꼈다.

 

인프런 스프링 MVC 1편

반응형