728x90
반응형
- @ResponseBody annotation을 사용하면 스프링이 반환 객체를 http response body로 변환합니다.
- ResponseEntity는 @ResponseBody annotation과 유사하게 작동합니다. 그러나 ResponseEntity 객체를 생성할 때 response header를 http response에 추가할 수도 있습니다.
- responseEntity를 반환 객체로 사용하는 경우 @ResponseBody annotation을 사용할 필요가 없습니다.
예제) @ResponseBody annotation 사용
@ResponseBody
@RequestMapping("/getData")
public ResJsonVO getData(DataVO param) {
try {
return testService.getData(param);
} catch (Exception e) {
log.error(e.getMessage(), e);
return Res.FAIL_SYSTEM_ERR;
}
}
예제) ResponseEntity 사용
@RequestMapping("/getData")
public ResponseEntity<Object> getData(DataVO param) {
try {
return ResponseEntity.ok(testService.getData(param)); // return 200 status
} catch (Exception e) {
log.error(e.getMessage(), e);
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); // return 500 error
}
}
Ajax로 결과를 return 받을때, @ResponseBody로 넘긴 값들은 success에서 따로 오류 처리를 해야하지만, ResponseEntity로 값을 넘기면 상태에 따라 처리할 수 있습니다.
728x90
반응형
'spring' 카테고리의 다른 글
[Spring] Mockmvc에 ExceptionHandler 등록 (0) | 2020.10.31 |
---|---|
[SpringBoot] Jackson JsonAlias 설정 및 x-www-form-urlencoded 문제 해결 (0) | 2020.10.31 |
[spring] @Valid를 이용한 validation 체크와 custom annotation으로 validation (0) | 2020.10.31 |
[springboot] sql script(schema.sql, data.sql) 실행 시 한글 깨짐 (0) | 2020.10.14 |
[springboot] REST API 적용하기 (0) | 2020.10.14 |
댓글