티스토리 뷰

728x90
반응형

@Controller와 @RestController 애너테이션은 스프링 프레임워크에서 

 

웹 애플리케이션 개발 시 주로 사용되는 애너테이션이다. 

 

이 두 애너테이션은 모두 클래스를 스프링 MVC 컨트롤러로 선언하지만, 그 동작 방식에는 중요한 차이가 존재한다.

 

@Controller

 

@Controller 애너테이션은 스프링 MVC의 전통적인 컨트롤러를 정의하는 데 사용된다.

 

이 애너테이션은 주로 뷰(View) 템플릿을 반환할 때 사용된다.

 

@Controller 클래스 내의 메서드는 주로 JSP, Thymeleaf와 같은 템플릿 엔진을 통해 HTML 페이지를 반환한다.

 

  • 뷰 리졸버(View Resolver)를 통해 뷰 이름을 해석하고 해당하는 HTML 페이지를 렌더링한다.

    • @Controller는 기본적으로 뷰 리졸버를 사용하여 논리적인 뷰 이름을 물리적인 뷰로 변환한다.
      예를 들어, 컨트롤러 메서드가 "home"을 반환하면, 뷰 리졸버는 "home.jsp" 또는 "home.html" 같은 실제 뷰를 찾는다.
  • 모델과 뷰를 함께 반환하여 동적인 웹 페이지를 생성할 수 있다.

 

@RestController

 

@RestController 애너테이션은 스프링 4.0에서 도입된 애너테이션으로, 

 

@Controller와 @ResponseBody를 결합한 형태이다.

 

RESTful 웹 서비스를 개발할 때 사용되며,

 

이 애너테이션을 사용하면 메서드의 반환 값이 뷰가 아닌 HTTP 응답 본문(Body)에 직접 작성된다.

 

  • JSON/XML 응답
    @RestController는 메서드가 반환하는 값을 뷰 이름으로 사용하지 않고, HTTP 응답의 본문으로 직접 반환한다.
    주로 JSON이나 XML 형식으로 데이터를 반환한다.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함