@Controller와 @RestController의 차이?

YOBY·2023년 9월 14일
0

@Controller

@Controller 어노테이션은 전통적인 스프링 MVC 컨트롤러를 지정합니다.
이 컨트롤러는 주로 HTML 페이지를 반환하거나 view를 렌더링하는 작업을 수행합니다.
예를 들어, 웹 페이지를 불러와 사용자에게 보여주는 기능을 수행할 때 사용됩니다.
반환 값으로는 주로 문자열 혹은 ModelAndView와 같은 view와 모델을 함께 반환합니다.

@Controller
public class MyController {
    @RequestMapping("/hello")
    public String sayHello() {
        return "hello"; // 뷰의 이름을 반환
    }
}

@RestController:

@RestController 어노테이션은 데이터를 반환하는데 사용됩니다.
즉, JSON, XML 등의 데이터를 반환할 때 주로 사용됩니다.
내부적으로는 @Controller와 @ResponseBody 어노테이션을 합쳐놓은 것입니다.
주로 RESTful API를 만들 때 사용됩니다.

@RestController
public class MyRestController {
    @RequestMapping("/api/hello")
    public String sayHello() {
        return "Hello, World!"; // 문자열을 직접 반환
    }
}

즉, @Controller는 주로 화면을 반환하고, @RestController는 주로 데이터를 반환합니다.
예를 들어, 웹 페이지가 필요한 경우 @Controller를 사용하고, JSON이나 XML과 같은 데이터가 필요한 경우 @RestController를 사용합니다.

0개의 댓글