본문 바로가기

프로그래밍 상식

@RequestBody, @RequestParam,@ModelAttribute의 차이

오늘은 간단하게 RequestBody, RequestParam, ModelAttribute의 차이점에 대해 간략하게 알아보겠다.


@RequestBody

클라이언트가 전송하는 JSON 형태의 HTTP Body내용을 MessageConverter를 통해 Java Object로 변환시켜 주는 역할을 합니다.

--> 값을 주입하지 않고 값을 변환 시키므로(Reflection을 할당), 변수들의 생성자, Getter, Setter가 없어도 정상적으로 할당된다.

 

@RequestParam

1개의 HTTP 요청 파라미터를 받기위해 사용합니다. @RequestParam은 필수 여부가 True이기 때문에, 기본적으로

반드시 해당 파라미터가 전송 되어야 합니다. 전송되지 않으면 400 Error를 유발할 수도 있고,

반드시 필요한 변수가 아니라면 required의 값을 false로 설정해줘야 합니다.

 

@ModelAttribute

 HTTP Body내용과 HTTP 파라미터의 값들을 생성자, Getter, Setter를 통해 주입하기 위해 사용합니다.

 

반응형