우당탕탕 좌충우돌 개발일기

ResponseBody 어노테이션 사용법 본문

Programming/JAVA

ResponseBody 어노테이션 사용법

성동구불주먹 2023. 12. 19. 10:42

@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