본문 바로가기
728x90
반응형

HttpMessageConverter3

[Spring] Bean Validation - HTTP 메시지 컨버터 @Valid, @Validated 는 HttpMessageConverter(@RequestBody)에도 적용할 수 있다. ※ 참고 @ModelAttribute는 HTTP 요청 파라미터(URL 쿼리 스트링, POST Form)을 다룰 때 사용한다. @RequestBody는 HTTP Body의 데이터를 객체로 변환할 때 사용한다. 주로 API JSON 요청을 다룰 때 사용한다. ValidationItemApiController.java package hello.itemservice.web.validation; import hello.itemservice.web.validation.form.ItemSaveForm; import lombok.extern.slf4j.Slf4j; import org.springfr.. 2023. 11. 10.
[Spring] 요청 매핑 핸들러 어뎁터 구조 그렇다면 HTTP 메시지 컨버터는 스프링 MVC 어디쯤에서 사용되는 것일까? SpringMVC 구조 핵심은 애노테이션 기반의 컨트롤러, 그러니까 @RequestMapping 을 처리하는 핸들러 어댑터인 RequestMappingHandlerAdapter(요청 매핑 핸들러 어뎁터)에 있다. RequestMappingHandlerAdapter 동작 방식 ArgumentResolver 생각해보면, 애노테이션 기반의 컨트롤러는 매우 다양한 파라미터를 사용할 수 있었다. HttpServletRequest, Model은 물론이고, @RequestParam, @ModelAttribute 같은 애노테이션 그리고 @RequestBody, HttpEntity 같은 HTTP 메시지를 처리하는 부분까지 큰 유연함을 보여주었다.. 2023. 6. 13.
[Spring] HTTP 메시지 컨버터 뷰 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 사용하면 편리하다. @ResponseBody 사용 원리 @ResponseBody를 사용 - HTTP의 body에 문자 내용을 직접 반환 - viewResolver 대신에 HttpMessageConverter가 동작 - 기본 문자 처리 : StringHttpMessageConverter - 기본 객체 처리 : MappingJAckson2HttpMessageConverter - byte 처리 등등 기타 여러 HttpMessageConverter 가 기본으로 등록되어 있음 ※ 참고 응답의 경우 클라이언트의 HTTP Accept 헤더와 서버의 컨.. 2023. 6. 13.
728x90
반응형