1. @RequestParam
- 쿼리 파라미터나 폼 데이터를 가져올 때 사용.
- 쉽게 말해 URL에 붙어 오는 데이터들을 받아오는 역할을 해줌
@GetMapping("/greet")
public String greet(@RequestParam String name) {
return "Hello, " + name;
}
만약 사용자가 http://yourapp.com/greet?name=Alice 이런 식으로 요청하면, @RequestParam이 name이라는 파라미터의 값을 받아서 Alice로 처리해줌.
2. @ModelAttribute
- 폼 데이터를 객체에 자동으로 바인딩 해줌.
- 주로 폼 데이터를 Model 객체로 바인딩할 때 사용
@PostMapping("/submitForm") public String submitForm(@ModelAttribute User user) {
// User 객체에 폼 데이터가 자동으로 바인딩됨
return "Form submitted by " + user.getName();
}
폼에 name, age 같은 데이터가 있으면, User 객체의 name, age 필드에 자동으로 값이 들어가게 된다.
3. @RequestBody
- HTTP 요청 본문에 있는 데이터를 자바 객체로 변경해줌.
- 주로 JSON 같은 포맷의 데이터를 처리할 때 사용.
@PostMapping("/createUser")
public String createUser(@RequestBody User user) {
// 요청 본문의 JSON 데이터가 User 객체로 변환됨
return "User created with name " + user.getName();
}
클라이언트가 JSON 형식으로 {"name": "Alice", "age": 25} 이런 데이터를 POST 요청으로 보내면, @RequestBody가 이 JSON을 User 객체로 변환해줌
4. @PathVariable
URL 경로에서 변수를 추출할 때 사용
@GetMapping("/users/{userId}")
public String getUserById(@PathVariable String userId) {
return "User ID: " + userId;
}
사용자가 http://yourapp.com/users/123 이런 식으로 요청했을 때, userId는 123이 되고, 이 값을 메서드에서 사용할 수 있게 됨.
5. 정리
- @RequestParam: URL 쿼리 파라미터나 폼 데이터에서 값을 받아와.
- @PathVariable: URL 경로의 일부를 변수로 받아와.
- @ModelAttribute: 폼 데이터를 객체로 자동 바인딩.
- @RequestBody: HTTP 요청 본문을 객체로 변환.