자주 쓰는 어노테이션 정리

마라탕천재 ㅣ 2024. 8. 13. 14:13

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 요청 본문을 객체로 변환.