- 스프링에서 @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편
'SPRING' 카테고리의 다른 글
logback에 대하여 (2) | 2024.01.11 |
---|---|
검증은 어떻게 이루어질까. (@Valid, @Validated) (1) | 2024.01.09 |
SPRING Boot + JPA + React.js intellij 프로젝트 생성 (0) | 2023.03.31 |
property or field 'orderItems' cannot be found on object of type 오류 해결 (0) | 2023.03.12 |
DB 계정을 2개 이상 사용할 때 추가해줘야 하는 것 (0) | 2023.03.10 |