@Controller 와 @RestController 는 Spring Framework 에서 사용되는 어노테이션 중 하나이다.
@Controller 는 클라이언트의 요청을 받아서 처리하고, 모델을 업데이트하며, 결과를 보여줄 뷰를 선택하는 역할을 한다. 따라서 @Controller 는 리턴되는 값의 파일을 응답한다.
반면 @RestController 는 반환되는 값이 본문에 직접 포함되어JSON이나 XML과 같은 형태로 출력하게 된다.
UserController.class
@RestController @Controller public class UserController { @GetMapping("/joinForm") public String joinForm(){ return "joinForm"; } }
resources/templates/joinForm.mustache
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>회원가입 페이지</h1> <br> </body> </html>
mustache 는 템플릿 엔진 중 하나이다.
(1) @Controller 를 사용했을 때
@Controller 를 사용하면 return "joinForm"; 이 가르키는 joinForm.mustache
를 출력한다
(2) @RestController 를 사용했을 때
@RestController 를 사용하면 리턴 값인 joinForm 을 문자열 그대로 출력한다.
Share article