@RestController vs @Controller

2025. 1. 16. 17:52·Spring

1️⃣ @RestController: 데이터 응답 전용

▪️ @Controller ➕ @ResponseBody

👉🏻 즉, 모든 메서드에 기본적으로 @ResponseBody가 적용

▪️JSON, XML 등 데이터를 응답하는 데 사용.

▪️주로 REST API를 구현할 때 사용.

▪️HTML 페이지를 반환하지 않음.

@RestController
public class MyRestController {

    @GetMapping("/api/data")
    public String getData() {
        return "Hello, JSON!";
    }
}
// 응답: "Hello, JSON!" (JSON 형식으로 응답)

 

2️⃣ @Controller: 페이지 렌더링 전용

  • HTML, JSP, Thymeleaf 같은 뷰(페이지)를 렌더링하는 데 사용.
  • 템플릿 엔진(Thymeleaf, JSP 등)과 함께 사용하여 동적인 HTML 페이지를 생성.
  • 데이터를 반환하려면 별도로 @ResponseBody를 추가해야 함.

➕뷰 리졸버(View Resolver)

  • @Controller는 반환된 값을 뷰 이름으로 간주.
  • 스프링은 이 값을 기반으로 템플릿 엔진을 호출해 페이지를 렌더링
@Controller
public class MyController {

    @GetMapping("/page")
    public String getPage(Model model) {
        model.addAttribute("message", "Hello, Page!");
        return "mypage";  // mypage.html 또는 mypage.jsp를 렌더링
    }
}
//결과: mypage.html 템플릿이 렌더링되고, 템플릿에서 message를 사용할 수 있음.

 

항목  @RestController @Controller
목적 데이터를 응답(JSON, XML 등) HTML 페이지(뷰)를 반환
사용 사례 REST API 개발 웹 애플리케이션 페이지 렌더링
기본 응답 방식 JSON, XML (데이터 응답) 뷰 이름(HTML 템플릿) 반환
@ResponseBody 필요 여부 자동 적용 필요 (@ResponseBody를 직접 추가해야 함)
템플릿 엔진 사용 사용하지 않음 Thymeleaf, JSP 등을 사용해 HTML 생성

 

'Spring' 카테고리의 다른 글

StringToStatusConverter  (0) 2025.05.10
'Spring' 카테고리의 다른 글
  • StringToStatusConverter
Jiyuuuuun
Jiyuuuuun
  • Jiyuuuuun
    Hello, World!
    Jiyuuuuun
  • 전체
    오늘
    어제
    • 분류 전체보기 (106)
      • TIL (56)
      • CS (12)
        • Network (4)
        • Algorithm (6)
      • JAVA (5)
      • Project (9)
        • HakPle (2)
        • JUSEYO (4)
      • Spring (2)
      • C (3)
      • C++ (16)
      • Snags (2)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Kubernetes
    HTML
    my_favorite_place
    부트캠프
    front-end
    javascript
    back-end
    Docker
    hakple
    JPA
    JDBC
    CSS
    react
    juseyo
    db
    nginx
    node.js
    멋쟁이사자처럼
    springboot
    java
    SQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Jiyuuuuun
@RestController vs @Controller
상단으로

티스토리툴바