@ResponseBody (ResponseBody 어노테이션)
:HTTP에서 BODY 쪽에 return 데이터를 직접 넣어주겠다는 뜻임
☝ 예제
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
만약 @RequestParam(”name”) 여기 부분에 ‘stone’을 넣는다면 return 값은 “hello stone" 이 될 것이다.
그래서 템플릿 엔진과 다르게 해당 문자열을 직접 뷰에 보낸다는 의미이다.
(↔템플릿은 뷰 리졸버(View Resolver)에게 ‘나랑 맞는 애를 찾아줘’하고 요청을 던져서 화면에 출력함)
✌ 예제
@GetMapping("hello-api")
@ResponseBody
public String helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
단, 첫 번째 예제 처럼 문자가 아니라 ‘hello’라는 객체가 오는 경우, JSON 방식으로 데이터를 만들어서 HTTP 응답에 반환하는 게 기본 정책이다.
그래서 템플릿은 뷰 리졸버(View Resolver)를 찾았던 반면, 해당 예제는 ‘HttpMessageConverter’를 통해 웹 브라우저로 응답하게 된다.
💡 HttpMessageConverter
: return 값이 문자열인 경우 StringConverter, 객체인 경우 JsonConverter로 변경
결론 ⇒ 객체가 return 되면, HttpMessageConverter 을 통해 JSON으로 변환돼서 전달된다.
반응형
'Programming > JAVA' 카테고리의 다른 글
테스트 케이스 - Assertions (1) | 2024.01.04 |
---|---|
Getter & Setter (0) | 2023.12.19 |
Optional 클래스 (0) | 2022.08.18 |
스택(Stack)의 구조 (0) | 2022.08.11 |
큐(Queue)의 구조 (0) | 2022.08.11 |