@Slf4j
@Controller
@RestController
public class ResponseBodyController {
@ResponseStatus(HttpStatus.OK)
@GetMapping("/response-body-json-v2")
public HelloData responseBodyJsonV2() {
HelloData helloData = new HelloData();
helloData.setUsername("userA");
helloData.setAge(20);
return helloData;
}
}
@RestController
@Controller 대신에 @RestController 애노테이션을 사용하면, 해당 컨트롤러에 모두 @ResponseBody 가
적용되는 효과가 있다. 따라서 뷰 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력한다. 이름
그대로 Rest API(HTTP API)를 만들 때 사용하는 컨트롤러이다.
참고로 @ResponseBody 는 클래스 레벨에 두면 전체 메서드에 적용되는데, @RestController 에노테이션 안에
@ResponseBody 가 적용되어 있다.
responseBodyJsonV2
ResponseEntity 는 HTTP 응답 코드를 설정할 수 있는데, @ResponseBody 를 사용하면 이런 것을 설정하기 까
다롭다.
@ResponseStatus(HttpStatus.OK) 애노테이션을 사용하면 응답 코드도 설정할 수 있다.
물론 애노테이션이기 때문에 응답 코드를 동적으로 변경할 수는 없다. 프로그램 조건에 따라서 동적으로 변경하려면
ResponseEntity 를 사용하면 된다.
'스프링' 카테고리의 다른 글
타임리프 문법 정리 (0) | 2024.01.31 |
---|---|
스프링 @RequiredArgsConstructor 란? (0) | 2024.01.31 |
스프링 mvc 뷰 템플릿 호출하기 (0) | 2024.01.30 |
스프링 json 받기 (0) | 2024.01.24 |
스프링 @ModelAttribute (0) | 2024.01.19 |