728x90
@ModelAttribute와 @RequestBody는 둘 다 Spring MVC 프레임워크에서 사용되는 어노테이션으로, HTTP 요청의 데이터를 컨트롤러 메서드에서 처리하기 위해 사용된다.
그러나 두 어노테이션의 사용 방법과 동작에 차이점이 있다.
@ModelAttribute
@ModelAttribute는 HTTP 요청의 파라미터를 객체로 바인딩하기 위해 사용된다.
컨트롤러 메서드의 파라미터 앞에 @ModelAttribute를 사용하여 해당 파라미터를 객체로 변환하고, 이를 컨트롤러 메서드 내에서 사용할 수 있다.
또한, 이 어노테이션을 사용하면 해당 객체를 자동으로 뷰로 전달된다.
주로 HTML 폼 데이터를 처리할 때 사용된다.
객체 클래스에 @Setter 어노테이션이나 Setter가 필요하다.
예시
@PostMapping("/user")
public String createUser(@ModelAttribute User user) {
// user 객체를 사용하여 사용자 생성 로직 수행
return "userCreated"; // 뷰 이름 반환
}
@RequestBody
@RequestBody는 HTTP 요청의 본문(body)에 담긴 데이터를 객체로 바인딩하기 위해 사용된다.
컨트롤러 메서드의 파라미터 앞에 @RequestBody를 사용하여 해당 파라미터를 요청 본문의 데이터를 변환하여 객체로 받아올 수 있다.
주로 JSON, XML, 또는 기타 데이터 형식의 요청을 처리할 때 사용된다.
예시
@PostMapping("/user")
public String createUser(@RequestBody User user) {
// user 객체를 사용하여 사용자 생성 로직 수행
return "userCreated"; // 뷰 이름 반환
}
주로 @ModelAttribute는 요청의 파라미터를 객체로 바인딩하고 뷰로 전달하는 목적으로 사용되고, @RequestBody는 요청 본문의 데이터를 객체로 바인딩하는 목적으로 사용된다.
728x90
'개발 > Spring' 카테고리의 다른 글
[Spring] addAttribute, addFlashAttribute 차이 (94) | 2024.03.13 |
---|---|
[Spring] Redirect, Forward 차이 (55) | 2023.09.18 |
[Spring] 스프링 배치(Spring Batch) 가이드 따라가기 (7) (0) | 2022.12.23 |
[Spring] 스프링 배치(Spring Batch) 가이드 따라가기 (6) (0) | 2022.12.20 |
[Spring] 스프링 배치(Spring Batch) 가이드 따라가기 (5) (0) | 2022.12.18 |