@ResponseBody 중요!
html에 나오는 body태그가 아니라 http에서 header, body가 있는데 body에 return(응답부분) 값(데이터)을 직접 넣어주겠다는 의미
기존 템플릿과 차이점은 뷰가 없다. 데이터만 들어간다는 것!
@GetMapping("/hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello"+name;
}
쿼리스트링에 내가 "안녕"이라고 입력하자 뷰에 입력한 값이 그대로 들어간다.!
데이터를 그대로 보여주는게 젤 큰 차이점!
문자가 아닌 데이터를 할 때 많이쓴다.
//이게보통 api방식이라고 많이 얘기하는 구문![](https://velog.velcdn.com/images/angela_/post/af0254f4-90fb-44f8-8082-e971636bd9e4/image.png)
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
}
JSON방식으로 데이터가 나온다.
json은 key:value
로 표현된다. 즉, key는 우리가 설정한 name이고, value은 입력한 값!
스프링에서는 객체를 반환하고, @ResponseBody로 해놓으면
json으로 반환하는게 기본을 세팅되어있음.
@ResponseBody를 사용
HttpMessageConverter
가 동작StringHttpMessageConverter (JsonConverter)
MappingJackson2HttpMessageConverter (StringConverter)