🤔  데이터 인자를 할당하는 세 가지 방법 무엇이 다른것일까?@RequestBody @RequestParam @PathVariable

처음 Post로 데이터를 받아올때 @RequestBody를 이용해서 DTO에 맞춰서 데이터를 가져왔고

Get으로 데이터를 받아올때는 @PathVariable을 이용해서 String 및 Integer을 받아왔다

도대체 무엇이 다른것일까?

🧐 https://ocblog.tistory.com/49

위 블로그에서 @RequestBody 와 @RequestParam의 차이점을 명확하게 구분하였다.

객체 생성의 여부와 각 변수별로 데이터의 저장!

Body는 객체가 생성되어 get,set이 용이하고

Param은 데이터 별로 저장하기 용이하다는 것

 

url상에서 데이터를 전달하는 경우(form 태그 등) @RequestParam 을 이용하고,

그 외의 경우 @RequestBody 를 이용하자! 라고 정리해주셨다.

😆  https://charliecharlie.tistory.com/263

위 블로그에서는 세가지를 명확하게 나누었다.

 

@PathVariable

  • URI 경로의 일부를 파라미터로 사용할 때 이용(URI 경로에서 값을 가져온다)
  • 템플릿 변수의 값을 추출하고 그 값을 메소드 변수에 할당하는데 사용된다.

@RequestParam

  • 쿼리 스트링에서 값을 가져온다.

@RequestBody

  • JSON 데이터를 원하는 타입의 객체로 변환해야 하는 경우에 사용
  • HTTP 요청의 몸체(body)를 자바 객체로 받을 수 있게 해준다.
  • 이처럼 주로 비동기 처리 구현 시 @ResponseBody와 함께 자주 사용된다.

💪 출처 및 도움주신분들

https://charliecharlie.tistory.com/263

 https://ocblog.tistory.com/49