@RestController
@Controller 는 반환 값이 String 이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 랜더링 된다.
@RestController 는 반환 값으로 뷰를 찾는 것이 아니라, HTTP 메시지 바디에 바로 입력한다.
Controller 대신에 @RestController 애노테이션을 사용하면,
해당 컨트롤러에 모두 @ResponseBody 가 적용되는 효과가 있다.
뷰 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력한다.
이름 그대로 Rest API(HTTP API)를 만들 때 사용하는 컨트롤러이다.
참고로 @ResponseBody 는 클래스 레벨에 두면 전체에 메서드에 적용되는데,
@RestController 에노테이션 안에 @ResponseBody 가 적용되어 있다.
@RestController
public class MappingController {
@RequestMapping("/hello-basic")
public String helloBasic() {
log.info("helloBasic");
return "ok";
}
}
위 코드에서 @RestController가 적용되었기 때문에,
helloBasic() 메서드에서 반환 값이 String임에도 불구하고, ok 메시지를 반환하는 것이다!
@Controller
@RequestMapping("/springmvc/v3/members")
public class SpringMemberControllerV3 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@GetMapping("/new-form")
public String newForm() {
return "new-form";
}
위 코드는 @Controller가 적용되었기 때문에,
newForm() 메서드에서 "new-form"이라는 view를 찾는 것이다!
'💻 Backend > 스프링' 카테고리의 다른 글
싱글톤 컨테이너란? (0) | 2022.01.23 |
---|---|
싱글톤 패턴이란? (0) | 2022.01.23 |
싱글톤이란? (0) | 2022.01.23 |
HTTP 요청 파라미터 - @RequestParam (0) | 2022.01.10 |
스프링 부트 기본 메시지 컨버터 (0) | 2022.01.08 |