Spring Boot
[Spring]@RestController, @Controller 개념 및 예시
JeongHoeWoon
2021. 12. 19. 23:25
1.@RestController
2.@Controller
3.@RestController과 @Controller예시
1. @RestController
- @RestController을 확인해보면 @ResponseBody와 @Controller이 들어있다.
- @ResponseBody : 응답할 내용을 HTTP 메시지 바디에 담아서 응답한다.
- @ResponseBody로 인해서 return 되는 것들은 view 이름을 탐색하는 게 아니라 HTTP 메시지 바디에 담겨서 응답이 된다.
2. @Controller
- @RestControlle와 달리 @ResponseBody가 없다.
- @RestController과 @ResponseBody가 없고 그냥 @Controller인 상태에서 return을 하게 되면 view 이름을 탐색한다. 없을 경우 5xx 에러가 뜬다.
- @RestController처럼 HTTP 메시지 바디에 응답 메시지를 담고 싶으면 해당되는곳에 @ResponseBody를 해주거나 클래스 단위로 하고 싶을 경우 클래스 선언해놓은 곳 위에다가 @ResponseBody를 하면 된다.
3. @RestController과 @Controller 예시
@RestController예시
@RestController
public RestControllerClass {
@GetMapping("/restcontroller")
public String confirm() {
return "ok";
}
- 결과
@Controller예시
@Controller
public ControllerClass{
@GetMapping("controller")
public String confirmController() {
return "ok"
}
- "ok"라는 view 이름이 없으면 5xx 에러
@Controller
public ControllerClass {
@ResponseBody
@GetMapping("controller")
public String confirmController() {
return "ok";
}
@Controller
@ResponseBody
public ControllerClass {
@GetMapping("controller")
public String confirmController() {
return "ok";
}
- 결과