본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA/Spring

Annotation - @RequestBody @ResponseBody

@RequestBody와 @ResponseBody

HTTP 요청 및 응답 처리를 담당하는 어노테이션

@RequestBody
POST, PUT, PATCH 메서드와 함께 사용
HTTP 요청 본문(body)에 담긴 데이터를 자바 객체로 변환해주는 어노테이션

@PostMapping("/users")
public User createUser(@RequestBody User user) {
    // 요청 본문에서 받아온 User 객체를 이용해 새로운 사용자 생성 로직 수행
    return userRepository.save(user);
}



@ResponseBody
컨트롤러에서 데이터를 반환할 때 사용
메서드의 반환값을 HTTP 응답 본문으로 전송

@Controller
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping("/users/{id}")
    @ResponseBody
    public User getUser(@PathVariable Long id) {
        User user = userRepository.findById(id).orElseThrow(() -> new UserNotFoundException(id));
        return user;
    }

}



최근에는 @ResponseBody 어노테이션은 생략이 가능
대신에 @RestController 어노테이션을 사용할 수 있다.
@RestController 어노테이션은 @Controller와 @ResponseBody를 합쳐놓은 것
해당 컨트롤러의 모든 메서드가 HTTP 응답 본문으로 변환된 객체를 반환하도록 동작한다.

@RestController
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {
        User user = userRepository.findById(id).orElseThrow(() -> new UserNotFoundException(id));
        return user;
    }

}

'JAVA > Spring' 카테고리의 다른 글

RestTemplate이란?  (0) 2023.05.10
Annotation - @RestController  (0) 2023.05.10
Annotation - @ResponseEntity  (0) 2023.05.10
Annotation - @RequiredArgsConstructor  (0) 2023.04.20
Annotation - @NonNull  (0) 2023.04.20