Spring Framework에서 @PathVariable, @RequestParam, @ModelAttribute, @RequestBody는 모두 HTTP 요청을 처리하는 메서드의 파라미터를 바인딩할 때 사용되는 어노테이션이다. 각각 의 어노테이션이 어떻게 사용되는지 보자.
🔡@PathVariable
- 설명: URL 경로의 일부를 변수로 받아오는 데 사용된다.
- 사용 예시: /users/{id}에서 {id} 부분을 파라미터로 받아올 수 있다.
- 특징: URL의 특정 위치에 있는 값을 추출하여 메서드 파라미터에 바인딩한다.
@GetMapping("/users/{id}")
public String getUserById(@PathVariable("id") String userId) {
// userId는 URL 경로에서 가져온 값
return "User ID: " + userId;
}
🔡@RequestParam
- 설명: URL 쿼리 파라미터나 폼 데이터를 메서드 파라미터에 바인딩하는 데 사용된다.
- 사용 예시:? name=John 같은 쿼리 파라미터를 파라미터로 받아올 수 있다.
- 특징: 기본적으로 필수 파라미터이며, 필수 옵션을 해제하거나 기본값을 설정할 수 있다.
@GetMapping("/users")
public String getUserByName(@RequestParam("name") String name) {
// name은 URL 쿼리에서 가져온 값
return "User Name: " + name;
}
🔡@ModelAttribute
- 설명: 모델 데이터를 생성하고, 이를 뷰에 전달하거나 폼 데이터와 함께 사용되는 객체를 바인딩하는 데 사용된다.
- 사용 예시: 폼 데이터를 받아서 객체에 바인딩할 때 주로 사용된다.
- 특징: 주로 폼 데이터를 처리하는 객체를 자동으로 생성하고 바인딩하는 역할을 하며, 뷰로 데이터를 전달할 때도 사용된다.
@PostMapping("/users")
public String createUser(@ModelAttribute User user) {
// User 객체는 폼 데이터로부터 생성
return "Created User: " + user.getName();
}
🔡 @RequestBody
- 설명: HTTP 요청의 본문(body) 데이터를 메서드 파라미터로 바인딩하는 데 사용된다.
- 사용 예시: JSON, XML 등의 데이터를 객체로 변환하여 받아올 수 있다.
- 특징: 주로 JSON 또는 XML과 같은 구조화된 데이터를 받을 때 사용되며, 요청 본문 전체를 객체로 변한다.
@PostMapping("/users")
public String createUser(@RequestBody User user) {
// User 객체는 요청 본문으로부터 생성
return "Created User: " + user.getName();
}
✏️요약
- @PathVariable: URL 경로에서 변수값을 추출한다.
- @RequestParam: 쿼리 파라미터 또는 폼 데이터를 추출한다.
- @ModelAttribute: 폼 데이터를 객체로 바인딩하거나 뷰에 데이터를 전달한다.
- @RequestBody: HTTP 요청 본문을 객체로 바인딩한다.
처음 배우는 프레임워크라 아직 생소한 게 많지만 기초를 확실하게 다지고 연습을 하다 보면 익숙해질 거 같다. 앞으로 프로젝트에 많이 사용될 거 같으니 빠른 시일 내에 마스터해야겠다.
'Spring' 카테고리의 다른 글
[SpringBoot]Jpa Auth Filter (0) | 2024.08.26 |
---|---|
[SpringBoot] Cookie & JWT (0) | 2024.08.21 |
[Spring Boot] JpaRepository (0) | 2024.08.20 |
[Springboot] IOC Container & Beans (0) | 2024.08.19 |
[SpringBoot] Constructor Annotation (0) | 2024.08.16 |