1. 근본적인 차이점
@Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 찾는 것.
@RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답에 담아서 전송.
@Controller와 @ResponseBody를 사용하여 만들 수 있지만 이러한 방식은 RESTful 웹서비스의 기본 동작이기 때문에 Spring은 @Controller와 @ResponseBody의 동작을 조합한 @RestController을 도입했습니다.
2. 코드로 이해하기!
2-1) Controller를 사용할 경우의 객체 반환(Json/XML 데이터)
-> @ResponseBody 어노테이션을 붙여줘야 객체 전송 가능
@Controller
public class PersonController {
@ResponseBody
@GetMapping("/myinfo")
public Person getMyInfo(){
Person p1 = new Person("길동이", 22, "서울", "개발자");
return p1;
}
}
2-2) RestController를 사용할 경우의 객체 반환(Json/XML 데이터)
-> @ResponseBody가 내장되어있다고 보면 됨
@RestController
public class PersonController {
@GetMapping("/myinfo")
public Person getMyInfo(){
Person p1 = new Person("길동이", 22, "서울", "개발자");
return p1;
}
}
===========================================================================================
@ResponseBody -> BufferedWriter가 동작
@RequestBody -> BufferedReader가 동작
'프로그래밍 > SpringBoot' 카테고리의 다른 글
JPA (2) - 생성일자, 수정일자 (0) | 2022.05.22 |
---|---|
JPA (1) - 기본 개념 - Domain/Repository (0) | 2022.05.22 |
스프링 버전 GA/RC/M/SNAPSHOT의 의미 (0) | 2022.05.21 |
그레들(Gradle)이란? (0) | 2022.05.21 |
RestController 란? (0) | 2022.05.21 |