[스프링] 컨트롤러 메서드의 리턴 값 종류

스프링 프레임워크에서 컨트롤러 메서드의 리턴 값은 다양한 형태로 제공됩니다. 이러한 다양한 형태의 리턴 값을 이용하여 클라이언트에게 필요한 정보를 전달할 수 있습니다.

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