[스프링] 컨트롤러 메서드의 리턴 값 종류
스프링 프레임워크에서 컨트롤러 메서드의 리턴 값은 다양한 형태로 제공됩니다. 이러한 다양한 형태의 리턴 값을 이용하여 클라이언트에게 필요한 정보를 전달할 수 있습니다.
1. 문자열 (String)
컨트롤러 메서드가 처리한 결과를 클라이언트에게 직접적으로 전달할 때 주로 사용됩니다. 예를 들어, HTML 또는 JSON 형식의 문자열을 반환할 수 있습니다.
@GetMapping("/hello")
public String hello() {
return "Hello, world!";
}
2. 모델 객체 (Model, Map, ModelAndView)
뷰 템플릿에서 사용할 데이터를 담고 있는 모델 객체를 반환할 수 있습니다.
@GetMapping("/user")
public ModelAndView getUser() {
User user = userService.getUser(1);
ModelAndView mav = new ModelAndView("userProfile");
mav.addObject("user", user);
return mav;
}
3. JSON 형식 데이터
RESTful API에서 주로 사용되며, 클라이언트에게 JSON 형식의 데이터를 반환할 수 있습니다.
@GetMapping("/user/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
User user = userService.getUser(id);
return ResponseEntity.ok(user);
}
4. 리다이렉트 (Redirect)
리다이렉트를 위한 URL을 반환하여 클라이언트의 요청을 다른 경로로 전환할 수 있습니다.
@PostMapping("/user")
public String saveUser(User user) {
userService.saveUser(user);
return "redirect:/user/" + user.getId();
}
스프링에서는 이처럼 다양한 형태의 리턴 값을 통해 다양한 클라이언트 요청에 대응할 수 있습니다.
Spring Framework Reference Documentation