서론
@RestController는 @Controller와 @ResponseBody의 조합이다.
@RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답을 담아서 전송한다.
따라서 return 값이 @Controller와 달리 반환 값으로 뷰를 찾는 것이 아닌, HTPP 메세지 바디에 바로 입력하게 된다.
@RestController
@RequiredArgsConstructorpublic
class TestController {
private final MemberService memberService;
@GetMapping("api/board/member")
public Member findMember(@RequestParam("id") String id) {
return memberService.findMember(member);
}
@GetMapping("api/board/member")
public ResponseEntity<Member> findMemberResponseEntity(@RequestParam("id") String id) {
return ResponseEntity.ok(memberService.findMember(member));
}
}
findMember() 메서드는 Member 객체 그대로 반환하고 있다. 이러한 경우에는 client가 예상하는 HttpStatus를 설정할 수 없기에 ResponseEntity로 감싸서 반환해줘야 한다.
과거에는 JSP, HTML과 같은 View를 전달해 주었기에 주에 @Controller를 사용했고
현재는 Front, Back으로 나누어 개발하는 경우가 많기에 Backend에서 Rest Api를 통해 JSON으로 데이터를 전달하기 때문에 편리성을 위해 @RestController를 사용한다.
'🌠Development > SpringBoot' 카테고리의 다른 글
[Spring Boot] Optional (0) | 2024.07.17 |
---|---|
[Spring Boot] @Controller (0) | 2024.04.10 |
[Spring Security] 10 - csrf enable 설정 방법 (0) | 2024.02.26 |
[Spring Security] 09 - 세션 설정 (0) | 2024.02.26 |
[Spring Securitiy] 08 - 세션 정보 확인 (0) | 2024.02.25 |