HttpMessageConverters란?

Y_Sevin·2022년 5월 11일
0

spring 개념

목록 보기
11/12

스프링 기초부터 다시 공부하며 이전에 정리하지 않은 내용을 정리합니다...!


HttpMessageConverters

HttpMessageConverters는 스프링 프레임워크에서 제공하는 인터페이스 입니다.

역할

HttpMessageConverters는 요청본문(Request body)에서 넘어온 json,xml형식의 데이터를 객체로 변환하거나 객체를 요청본문(Request body)에 넣어주는 역할을 합니다.
json {"name":"sebin"} --> User

HttpMessageConverters는 언제 동작할까?

  • @RequestBody
  • @ResponseBody
    위의 어노테이션을 사용할때 HttpMessageConverters가 동작합니다.

Controller 는 요청이 들어오면 ViewResolver(BeanNameViewResolver)를 동작하면서 논리적 view이름과 동일한 id의 view구현체를 검색하고 이를 가져오게 됩니다.
하지만 @ResponseBody어노테이션이 붙어있다면 요청이 들어왔을때 ViewResolver를 동작하는 것이 아니라 HttpMessageConverter를 동작하고 객체를 요청본문으로 변환하는 작업을 진행합니다.

@Controller
public class MemberController{
	@GetMapping("hello-api")  
	@ResponseBody  
	public Member JoinApi(@RequestBody Member member) {    
	 return member;
}}

@RestController

@RestController는 @Controller와 @ResponseBody 가 합쳐진 구조라 생각하면 됩니다.
@Controller대신 @RestController가 클래스에 붙어있다면 모든 메서드에 @ResponseBody가 붙어있다고 생각하면 됩니다.

@RestController
public class MemberController{
	@GetMapping("hello-api")  
	public Member JoinApi(@RequestBody Member member) {    
	 return member;
}}

String HttpMessageConverters

  • HTTP Body 에 담긴 내용을 string으로 변환하거나 string을 HTTP Body에 넣을 수 있습니다.
@GetMapping("hello-api")  
@ResponseBody  
public Hello helloApi(@RequestParam("name") String name) {  
    Hello hello = new Hello();  
    hello.setName(name);  
    return hello;  
}
profile
매일은 아니더라도 꾸준히 올리자는 마음으로 시작하는 개발블로그😎

0개의 댓글