Blue Chicken - The Legend Of Zelda
본문 바로가기

개인공부

[spring]@Controller와 @RestController의 차이

@Controller와 @RestController의 차이

@Controller

  • 뷰 리졸버(View Resolver): @Controller는 주로 JSP와 같은 뷰를 반환하는데 사용됩니다. 반환된 문자열은 뷰 이름으로 해석되며, 해당 뷰가 렌더링됩니다.
  • 뷰 반환: 주로 템플릿 엔진을 통해 HTML 뷰를 반환할 때 사용됩니다.
  • 예시:
    java
    코드 복사
    @Controller public class MyController { @RequestMapping("/hello") public String hello() { return "hello"; // /WEB-INF/views/hello.jsp 뷰를 반환 } }

@RestController

  • JSON/XML 데이터 반환: @RestController는 RESTful 웹 서비스 엔드포인트를 만들기 위해 사용되며, HTTP 응답 본문에 JSON 또는 XML 데이터와 같은 데이터를 직접 반환합니다.
  • 뷰 리졸버 사용 안 함: 반환된 데이터는 뷰 리졸버를 통해 해석되지 않고, HTTP 응답 본문에 직접 작성됩니다.
  • 예시:
    java
    코드 복사
    @RestController public class MyRestController { @GetMapping("/hello") public String hello() { return "hello"; // "hello"라는 텍스트를 응답 본문에 직접 반환 } }