delpho
[Spring] @Controller 와 @RestController의 차이 본문
_1.
Spring엔 컨트롤러를 지정하는 어노테이션이 두 개 존재.
- 전통적인 Spring MVC 컨트롤러 👉 @Controller
- Restful 웹서비스의 컨트롤러 👉 @RestController
그렇다면 가장 큰 차이는?
👉 HTTP Response Body가 생성되는 방식
_2.
@Controller
👉 주로 Model 객체를 만들어 데이터를 담은 후 View를 반환
❗ @ResponseBody으로 객체만 반환도 가능!
@RestController
👉 단순히 객체만을 반환 (JSON 혹은 XML)
👉 @Controller + @ResponseBody
[ @Controller 예제 코드 ]
@Controller
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
@GetMapping(value = "/users")
public @ResponseBody ResponseEntity<User> findUser(@RequestParam("userName") String userName){
return ResponseEntity.ok(userService.findUser(user));
}
@GetMapping(value = "/users/detailView")
public String detailView(Model model, @RequestParam("userName") String userName){
User user = userService.findUser(userName);
model.addAttribute("user", user);
return "/users/detailView";
}
}
[ @RestController 예제 코드 ]
@RestController
@RequestMapping("/user")
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
@GetMapping(value = "/users")
public User findUser(@RequestParam("userName") String userName){
return userService.findUser(user);
}
@GetMapping(value = "/users")
public ResponseEntity<User> findUserWithResponseEntity(@RequestParam("userName") String userName){
return ResponseEntity.ok(userService.findUser(user));
}
}
출처
https://dev-coco.tistory.com/84
[Spring] @Controller와 @RestController의 차이점 알아보기
@Controller 와 @RestController Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있습니다. 전통적인 Spring MVC 컨트롤러인 @Controller와 RESTful 웹 서비스의 컨트롤러..
dev-coco.tistory.com
https://mangkyu.tistory.com/49
[Spring] @Controller와 @RestController 차이
Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있습니다. 전통적인 Spring MVC의 컨트롤러인 @Controller와 Restuful 웹서비스의 컨트롤러인 @RestController의 주요한 차..
mangkyu.tistory.com
'CS > Spring' 카테고리의 다른 글
JSP MVC Pattern (등장배경, Model 1 / Model 2, 한계) (0) | 2024.04.08 |
---|---|
Servlet (등장 배경, 생명 주기, 동작 방식, Servlet Container) (1) | 2024.04.03 |
Spring Framework의 등장 배경과 발전 과정 (0) | 2024.04.02 |
Web Server vs WAS (Web Application Server) (0) | 2024.04.01 |