@ResponseBody 란?
http 통신 프로토콜은 header와 body가 있는데 여기의 body에 직접 넣어주겠다 라는 의미
**템플릿 엔진과의 차이는 ??
템플릿 엔진은 return 값이 view 처리하는 파일을 찾아서 보여준다
@ResponseBody 는 따로 view 처리하는게 파일이 없고, 어노테이션을 가지고있고, 요청명이 일치하면
해당 메서드가 바로 view 처리된다.
페이지를 실행하고 우클릭 > 페이지 소스보기 클릭시 차이를 알 수 있다.
템플릿 엔진 : html 코드가 보임
@ResponseBody : 메서드의 return 값만 보임
@ResponseBody는 HTTP의 BODY에 문자를 보여주는 어노테이션이다.
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
viewResolver가 view를 찾지않고, 해당 메서드의 return값을 HTTP의 BODY에 보여준다.
출처 : 인프런 김영한 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
추가적으로,
@ResponseBody가 있는 메서드의 return값이 객체라면??
json 방식으로 보여준다. json 방식은 키와 값으로 구성되어있는 형태이다.
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
//static 객체 생성
//getter setter 단축키 : alt + insert
static class Hello {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
출처 : 인프런 김영한 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@ResponseBody 처리 과정
[Spring] 스프링 빈과 의존관계. (컴포넌트 스캔과 자동 의존관계 설정/자바 코드로 직접 스프링 빈 등록하기) (0) | 2024.03.04 |
---|---|
[Spring] getter / setter 단축키 (인텔리제이) (0) | 2024.02.27 |
[Spring] java 버전, SDKs 등 변경 후 메인 메서드 실행시 오류 (인텔리제이) (2) | 2024.02.27 |
[Spring] gradle build 그래들 빌드하기 (0) | 2024.02.27 |
[Spring] 인텔리제이 Java version 확인, 환경변수 JAVA_HOME 확인/변경 방법 (2) | 2024.02.27 |