반응형
HttpMessageConverters
HttpMessageConverters는 스프링 프레임워크에서 제공하는 인터페이스이다.
HTTP 요청 본문을 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경할 때 사용한다. 사용하는 HttpmessageConverter는 여러가지가 있고, 우리가 어떤 요청을 받았는지, 응답을 보내는지에 따라서 메세지컨버터가 달라진다.
- @RequestBody
- @ResponseBody
- 아래에서 User(객체)를 리턴할 때는 기본적으로 JsonMessageConverter가 사용이되고, String타입을 이턴할 때는 StringMessageConverter가 사용이 된다. int도 마찬가지로 StringMessageConverter이다.
- @RestController면 @ResponseBody는 생략해도 된다.
- MessageConverter를 타고 객체를 응답 본문으로 바꾼다.
- 그냥 @Controller를 사용할 경우에는 @ResponseBody를 넣어야 MessageConverter가 적용이된다.
- @Controller에서 @ResponseBody를 선언하지 않으면 BeanNameViewResolver에 의해서 ViewName에 해당하는 뷰를 찾으려고 시도한다.
@PostMapping("/user")
public @ResponseBody User create(@RequestBody User user) {
...
return new User( ... );
}
출처: https://ict-nroo.tistory.com/98 [개발자의 기록습관]
@EnableWebMvc > DelegatingWebMvcConfiguration(@Configuration) > WebMvcConfigurationSupport
addDefaultHttpMessageConverters가 기본 컨버터들을 입력해줍니다. > HandlerAdapter가 사용함 > Argument를 Resolving할 때 사용함
현재 요청에 따른 컨버터를 선택해서 컨버전을 해주는 것
Json으로 올 경우 헤더에 컨텐츠 타입이 있음 > 컨텐츠 타입을 보고 Json을 컨버트 할 수 있는 컨버터를 사용해야겠다는 것을 알 수 있음 > jackson2Present... 기본 dependency임 > Spring starter web에 있음
반응형
'Spring > Spring Web MVC' 카테고리의 다른 글
Apache2와 httpd (0) | 2021.06.09 |
---|---|
ResponseEntity란? (0) | 2021.03.28 |
URI 패턴 (1) | 2021.03.03 |
Spring RestTemplate (0) | 2021.02.25 |
RESTful API (0) | 2021.02.25 |