@RequestParam과 @RequestBody는 Spring Framework에서 요청 파라미터를 받는 데 사용되는 어노테이션입니다.
@RequestParam
- 사용법: @RequestParam("paramName")
- 역할: URL 매개변수를 받아올 때 사용합니다. 예를 들어, ?paramName=value 형태의 URL 매개변수에서 paramName에 해당하는 값을 받아올 수 있습니다.
- 기본적으로는 요청의 쿼리스트링(또는 폼 데이터)에서 해당 매개변수를 찾아 값을 바인딩합니다.
required 옵션을 사용하여 필수 매개변수 여부를 지정할 수 있습니다. - 기본적으로는 단일 값을 받지만, List나 배열을 사용하여 여러 값을 받을 수도 있습니다.
@RequestBody
- 사용법: @RequestBody
- 역할: 요청 본문의 데이터를 받아올 때 사용합니다. 주로 JSON 형태의 데이터를 받아올 때 사용됩니다.
- 요청의 본문을 읽어 해당 데이터를 자바 객체로 변환합니다. 이를 POJO(Plain Old Java Object)로 매핑하여 사용할 수 있습니다.
- 요청의 Content-Type이 application/json인 경우에만 사용됩니다.
- 요청 본문의 데이터를 자동으로 파싱하여 자바 객체로 변환해주는 기능을 제공합니다.
- 복잡한 객체 구조나 중첩된 JSON 데이터를 자동으로 매핑할 수 있습니다.
차이점
- @RequestParam은 URL 매개변수나 폼 데이터를 받아오는 데 사용되며, @RequestBody는 요청 본문의 데이터를 자바 객체로 변환하는 데 사용됩니다.
- @RequestParam은 단순한 데이터 타입에 사용되며, @RequestBody는 복잡한 객체 구조를 매핑할 수 있습니다.
- @RequestParam은 URL 매개변수의 값에 직접 접근하고, @RequestBody는 요청 본문의 데이터를 자동으로 변환하여 객체로 받습니다.
- @RequestParam은 기본적으로 필수 매개변수가 아니며, @RequestBody는 요청 본문이 있어야 합니다.
'Backend > spring' 카테고리의 다른 글
[spring security] 1. 의존성 추가, 기본 로그인 페이지 (0) | 2023.08.20 |
---|---|
spring boot 개발환경 설정(spring initializr) (0) | 2023.08.18 |
spring bean 주입 방법 (0) | 2023.05.10 |
@RequestMapping @PostMapping @GetMapping 차이 (0) | 2022.10.09 |
spring logback (0) | 2022.06.10 |