@ModelAttribute, @RequestBody 란?

차우빈·2023년 12월 10일
post-thumbnail

@ModelAttribute

  • 개념: @ModelAttribute는 요청 파라미터를 객체로 매핑하여, 복잡한 데이터 구조를 쉽게 다루게 해줍니다.
  • 특징:
  1. 폼 데이터의 각 필드가 객체의 필드와 자동으로 매핑됩니다.

  2. 복잡한 객체 구조의 데이터를 간편하게 처리할 수 있습니다.

Spring Controller 예제:
javaCopy code
@PostMapping("/register")
public String registerUser(@ModelAttribute User user) {
    // user 객체를 사용한 로직 처리
}


cURL 요청:이 cURL 요청은 username과 email 폼 데이터를 전송합니다.

bashCopy code
curl -X POST "http://localhost:8080/register" -d "username=JohnDoe&email=john@example.com"

@RequestBody

  • 개념: @RequestBody는 클라이언트가 전송하는 HTTP 요청의 본문(body)을 Java 객체로 변환하여 받습니다.
  • 특징:
  1. HTTP 요청 본문의 내용을 자바 객체로 역직렬화합니다.

  2. 주로 JSON 또는 XML 형식의 데이터 처리에 사용됩니다.

Spring Controller 예제:
javaCopy code
@PostMapping("/api/user")
public String apiUser(@RequestBody User user) {
    // user 객체를 사용한 로직 처리
}


cURL 요청:이 cURL 요청은 JSON 형식의 본문 데이터를 전송하며, Content-Type 헤더를 application/json으로 설정합니다.

bashCopy code
curl -X POST "http://localhost:8080/api/user" -H "Content-Type: application/json" -d '{"username":"JohnDoe", "email":"john@example.com"}'

profile
코린이입니다.

0개의 댓글