[Spring]@RestController

zioo·2022년 2월 24일
0

Spring

목록 보기
1/6

1. @RestController란?

  • 스프링프레임워크 4.x 버전 이상부터 사용가능한 어노테이션으로 @Controller에 @ResponseBody가 결합된 어노테이션입니다.
  • 컨트롤러 클래스에 @RestController를 붙이면, 컨트롤러 클래스 하위 메서드에 @ResponseBody 어노테이션을 붙이지 않아도 문자열과 JSON 등을 전송할 수 있습니다.

@Controller 어노테이션을 이용하면 기본적으로 view 페이지를 찾아서 띄어주는 역할을 한다.
@Controller : 전통적인 Spring MVC의 컨트롤러

@RestController: Restuful 웹서비스의 컨트롤러

주요한 차이점은 HTTP Response Body가 생성되는 방식입니다.

2. @Controller와 @RestController 차이점

@Restcontroller는 Spring MVC Controller에 @ResponseBody가 추가된 것입니다. 따라서 @Controller와 달리 @RestController는 컨트롤러 클래스의 각 메서드마다 @ResponseBody를 추가할 필요가 없어졌습니다.

3. @RestController를 사용하여 문자열을 전송하는 방법

@RestController
@RequestMapping("/hello/*")
public class RestController {
    
    @RequestMapping("/test")
    public String test() {
        return "test";
    }
}

요약

Controller에서 view를 반환하는 케이스 이외에 json data를 반환해야되는 케이스에

@Controller + @ResponseBody를 함께 쓰는 번거로움을 해결하기 위해서

@RestController 탄생

0개의 댓글